@nio-cli/cli 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +374 -139
- package/dist/adapters/docker/docker-gateway.js +100 -0
- package/dist/adapters/docker/docker-gateway.js.map +1 -0
- package/dist/adapters/ide/ide-gateway.js +50 -0
- package/dist/adapters/ide/ide-gateway.js.map +1 -0
- package/dist/adapters/lang/knowledge-store.js +97 -0
- package/dist/adapters/lang/knowledge-store.js.map +1 -0
- package/dist/adapters/lang/language-catalog.js +86 -0
- package/dist/adapters/lang/language-catalog.js.map +1 -0
- package/dist/adapters/lang/package-map.js +98 -0
- package/dist/adapters/lang/package-map.js.map +1 -0
- package/dist/adapters/lang/project-detector.js +40 -0
- package/dist/adapters/lang/project-detector.js.map +1 -0
- package/dist/adapters/lang/repos.js +8 -0
- package/dist/adapters/lang/repos.js.map +1 -0
- package/dist/adapters/lang/scaffold-gateway.js +135 -0
- package/dist/adapters/lang/scaffold-gateway.js.map +1 -0
- package/dist/adapters/lang/vendor.js +52 -0
- package/dist/adapters/lang/vendor.js.map +1 -0
- package/dist/adapters/pg/auth-session-repository.js +41 -0
- package/dist/adapters/pg/auth-session-repository.js.map +1 -0
- package/dist/adapters/pg/client.js +74 -0
- package/dist/adapters/pg/client.js.map +1 -0
- package/dist/adapters/pg/dependency-event-repository.js +40 -0
- package/dist/adapters/pg/dependency-event-repository.js.map +1 -0
- package/dist/adapters/pg/login-challenge-repository.js +54 -0
- package/dist/adapters/pg/login-challenge-repository.js.map +1 -0
- package/dist/adapters/pg/session-repository.js +70 -0
- package/dist/adapters/pg/session-repository.js.map +1 -0
- package/dist/adapters/pg/user-repository.js +71 -0
- package/dist/adapters/pg/user-repository.js.map +1 -0
- package/dist/adapters/pkg/toolchain-gateway.js +35 -0
- package/dist/adapters/pkg/toolchain-gateway.js.map +1 -0
- package/dist/adapters/skills/recipe-catalog.js +84 -0
- package/dist/adapters/skills/recipe-catalog.js.map +1 -0
- package/dist/adapters/sms/http-generic.js +50 -0
- package/dist/adapters/sms/http-generic.js.map +1 -0
- package/dist/app/ai-client.js +44 -0
- package/dist/app/ai-client.js.map +1 -0
- package/dist/app/dependency-watcher.js +87 -0
- package/dist/app/dependency-watcher.js.map +1 -0
- package/dist/app/docker-manager.js +113 -0
- package/dist/app/docker-manager.js.map +1 -0
- package/dist/app/environment-builder.js +73 -0
- package/dist/app/environment-builder.js.map +1 -0
- package/dist/app/language-configurator.js +30 -0
- package/dist/app/language-configurator.js.map +1 -0
- package/dist/app/session-manager.js +124 -0
- package/dist/app/session-manager.js.map +1 -0
- package/dist/brand.js +3 -61
- package/dist/brand.js.map +1 -1
- package/dist/cli/commands/agents.js +30 -0
- package/dist/cli/commands/agents.js.map +1 -0
- package/dist/cli/commands/ai.js +61 -0
- package/dist/cli/commands/ai.js.map +1 -0
- package/dist/cli/commands/auth.js +149 -96
- package/dist/cli/commands/auth.js.map +1 -1
- package/dist/cli/commands/clean.js +1 -13
- package/dist/cli/commands/clean.js.map +1 -1
- package/dist/cli/commands/command.js +58 -0
- package/dist/cli/commands/command.js.map +1 -0
- package/dist/cli/commands/completion.js +0 -3
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.js +43 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/debug.js +102 -0
- package/dist/cli/commands/debug.js.map +1 -0
- package/dist/cli/commands/deps.js +94 -0
- package/dist/cli/commands/deps.js.map +1 -0
- package/dist/cli/commands/docker.js +385 -0
- package/dist/cli/commands/docker.js.map +1 -0
- package/dist/cli/commands/docs/content.js +219 -0
- package/dist/cli/commands/docs/content.js.map +1 -0
- package/dist/cli/commands/docs/dynamic.js +42 -0
- package/dist/cli/commands/docs/dynamic.js.map +1 -0
- package/dist/cli/commands/docs/html.js +108 -0
- package/dist/cli/commands/docs/html.js.map +1 -0
- package/dist/cli/commands/docs/terminal.js +42 -0
- package/dist/cli/commands/docs/terminal.js.map +1 -0
- package/dist/cli/commands/docs.js +34 -0
- package/dist/cli/commands/docs.js.map +1 -0
- package/dist/cli/commands/exec.js +2 -7
- package/dist/cli/commands/exec.js.map +1 -1
- package/dist/cli/commands/init/auth-step.js +10 -45
- package/dist/cli/commands/init/auth-step.js.map +1 -1
- package/dist/cli/commands/init/clients-step.js +12 -39
- package/dist/cli/commands/init/clients-step.js.map +1 -1
- package/dist/cli/commands/init/context-step.js +7 -33
- package/dist/cli/commands/init/context-step.js.map +1 -1
- package/dist/cli/commands/init/handoff.js +20 -0
- package/dist/cli/commands/init/handoff.js.map +1 -0
- package/dist/cli/commands/init/index.js +164 -34
- package/dist/cli/commands/init/index.js.map +1 -1
- package/dist/cli/commands/init/lang-step.js +40 -0
- package/dist/cli/commands/init/lang-step.js.map +1 -0
- package/dist/cli/commands/init/profile-step.js +43 -0
- package/dist/cli/commands/init/profile-step.js.map +1 -0
- package/dist/cli/commands/init/provision-step.js +8 -23
- package/dist/cli/commands/init/provision-step.js.map +1 -1
- package/dist/cli/commands/init/recipe-step.js +18 -0
- package/dist/cli/commands/init/recipe-step.js.map +1 -0
- package/dist/cli/commands/lang.js +27 -0
- package/dist/cli/commands/lang.js.map +1 -0
- package/dist/cli/commands/open.js +59 -0
- package/dist/cli/commands/open.js.map +1 -0
- package/dist/cli/commands/plan.js +2 -6
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/security.js +143 -0
- package/dist/cli/commands/security.js.map +1 -0
- package/dist/cli/commands/sessions.js +92 -0
- package/dist/cli/commands/sessions.js.map +1 -0
- package/dist/cli/commands/skills.js +1 -1
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/commands/start.js +8 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/sync.js +52 -58
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/validate-plan.js +2 -6
- package/dist/cli/commands/validate-plan.js.map +1 -1
- package/dist/cli/copy/auth.json +9 -2
- package/dist/cli/copy/init.json +2 -6
- package/dist/cli/copy.js +0 -8
- package/dist/cli/copy.js.map +1 -1
- package/dist/cli/flows/clients.js +3 -94
- package/dist/cli/flows/clients.js.map +1 -1
- package/dist/cli/flows/completion.js +1 -6
- package/dist/cli/flows/completion.js.map +1 -1
- package/dist/cli/flows/dependencies.js +1 -18
- package/dist/cli/flows/dependencies.js.map +1 -1
- package/dist/cli/flows/onboarding.js +116 -0
- package/dist/cli/flows/onboarding.js.map +1 -0
- package/dist/cli/flows/sections.js +2 -10
- package/dist/cli/flows/sections.js.map +1 -1
- package/dist/cli/flows/user-config.js +5 -10
- package/dist/cli/flows/user-config.js.map +1 -1
- package/dist/cli/program.js +58 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/ui/render.js +2 -53
- package/dist/cli/ui/render.js.map +1 -1
- package/dist/cli/ui/report.js +0 -13
- package/dist/cli/ui/report.js.map +1 -1
- package/dist/cli.js +27 -31
- package/dist/cli.js.map +1 -1
- package/dist/config.js +27 -56
- package/dist/config.js.map +1 -1
- package/dist/core/docker.js +2 -0
- package/dist/core/docker.js.map +1 -0
- package/dist/core/environment.js +2 -0
- package/dist/core/environment.js.map +1 -0
- package/dist/core/lang.js +11 -0
- package/dist/core/lang.js.map +1 -0
- package/dist/core/messaging.js +2 -0
- package/dist/core/messaging.js.map +1 -0
- package/dist/core/repositories.js +2 -0
- package/dist/core/repositories.js.map +1 -0
- package/dist/core/types.js +0 -5
- package/dist/core/types.js.map +1 -1
- package/dist/gateway/config.js +13 -0
- package/dist/gateway/config.js.map +1 -0
- package/dist/gateway/edge-filter.js +55 -0
- package/dist/gateway/edge-filter.js.map +1 -0
- package/dist/gateway/index.js +176 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/middleware/auth.js +34 -0
- package/dist/gateway/middleware/auth.js.map +1 -0
- package/dist/gateway/services/login.js +112 -0
- package/dist/gateway/services/login.js.map +1 -0
- package/dist/gateway/services/security.js +99 -0
- package/dist/gateway/services/security.js.map +1 -0
- package/dist/lib/auth/backup-codes.js +46 -0
- package/dist/lib/auth/backup-codes.js.map +1 -0
- package/dist/lib/auth/gateway-client.js +86 -0
- package/dist/lib/auth/gateway-client.js.map +1 -0
- package/dist/lib/auth/gateway-process.js +54 -0
- package/dist/lib/auth/gateway-process.js.map +1 -0
- package/dist/lib/auth/gateway-token.js +26 -0
- package/dist/lib/auth/gateway-token.js.map +1 -0
- package/dist/lib/auth/nio-config.js +147 -0
- package/dist/lib/auth/nio-config.js.map +1 -0
- package/dist/lib/auth/otp.js +23 -0
- package/dist/lib/auth/otp.js.map +1 -0
- package/dist/lib/auth/password.js +23 -0
- package/dist/lib/auth/password.js.map +1 -0
- package/dist/lib/auth/session-store.js +49 -0
- package/dist/lib/auth/session-store.js.map +1 -0
- package/dist/lib/clients/autopull.js +8 -0
- package/dist/lib/clients/autopull.js.map +1 -0
- package/dist/lib/{client-configs.js → clients/client-configs.js} +113 -34
- package/dist/lib/clients/client-configs.js.map +1 -0
- package/dist/lib/clients/client-install.js +20 -0
- package/dist/lib/clients/client-install.js.map +1 -0
- package/dist/lib/{harness.js → clients/harness.js} +1 -16
- package/dist/lib/clients/harness.js.map +1 -0
- package/dist/lib/{hooks.js → clients/hooks.js} +5 -31
- package/dist/lib/clients/hooks.js.map +1 -0
- package/dist/lib/{targets.js → clients/targets.js} +17 -53
- package/dist/lib/clients/targets.js.map +1 -0
- package/dist/lib/colors.js +0 -24
- package/dist/lib/colors.js.map +1 -1
- package/dist/lib/cowork-extension.js +2 -25
- package/dist/lib/cowork-extension.js.map +1 -1
- package/dist/lib/debug.js +6 -0
- package/dist/lib/debug.js.map +1 -0
- package/dist/lib/{dependencies.js → deps/dependencies.js} +1 -26
- package/dist/lib/deps/dependencies.js.map +1 -0
- package/dist/lib/deps/dependency-install-project.js +27 -0
- package/dist/lib/deps/dependency-install-project.js.map +1 -0
- package/dist/lib/{dependency-install.js → deps/dependency-install.js} +10 -35
- package/dist/lib/deps/dependency-install.js.map +1 -0
- package/dist/lib/deps/dependency-installed.js +64 -0
- package/dist/lib/deps/dependency-installed.js.map +1 -0
- package/dist/lib/deps/dependency-scan.js +100 -0
- package/dist/lib/deps/dependency-scan.js.map +1 -0
- package/dist/lib/docker.js +50 -0
- package/dist/lib/docker.js.map +1 -0
- package/dist/lib/dotfiles.js +57 -0
- package/dist/lib/dotfiles.js.map +1 -0
- package/dist/lib/{exec-delegate.js → exec/exec-delegate.js} +4 -13
- package/dist/lib/exec/exec-delegate.js.map +1 -0
- package/dist/lib/{exec-engines.js → exec/exec-engines.js} +1 -10
- package/dist/lib/exec/exec-engines.js.map +1 -0
- package/dist/lib/{plan-delegate.js → exec/plan-delegate.js} +1 -7
- package/dist/lib/exec/plan-delegate.js.map +1 -0
- package/dist/lib/{validate-plan-delegate.js → exec/validate-plan-delegate.js} +2 -7
- package/dist/lib/exec/validate-plan-delegate.js.map +1 -0
- package/dist/lib/headroom.js +44 -0
- package/dist/lib/headroom.js.map +1 -0
- package/dist/lib/ide-tasks.js +54 -0
- package/dist/lib/ide-tasks.js.map +1 -0
- package/dist/lib/load-env.js +44 -0
- package/dist/lib/load-env.js.map +1 -0
- package/dist/lib/open-url.js +9 -0
- package/dist/lib/open-url.js.map +1 -0
- package/dist/lib/prompts.js +0 -13
- package/dist/lib/prompts.js.map +1 -1
- package/dist/lib/{provision-apply.js → provision/provision-apply.js} +4 -30
- package/dist/lib/provision/provision-apply.js.map +1 -0
- package/dist/lib/{provision-collect.js → provision/provision-collect.js} +0 -9
- package/dist/lib/provision/provision-collect.js.map +1 -0
- package/dist/lib/{provision.js → provision/provision.js} +4 -17
- package/dist/lib/provision/provision.js.map +1 -0
- package/dist/lib/{patterns.js → skills/patterns.js} +0 -13
- package/dist/lib/skills/patterns.js.map +1 -0
- package/dist/lib/{rules.js → skills/rules.js} +0 -22
- package/dist/lib/skills/rules.js.map +1 -0
- package/dist/lib/skills/sections.js +58 -0
- package/dist/lib/skills/sections.js.map +1 -0
- package/dist/lib/{skill-serve.js → skills/skill-serve.js} +1 -26
- package/dist/lib/skills/skill-serve.js.map +1 -0
- package/dist/lib/{skills-cache.js → skills/skills-cache.js} +15 -21
- package/dist/lib/skills/skills-cache.js.map +1 -0
- package/dist/lib/{skills.js → skills/skills.js} +3 -49
- package/dist/lib/skills/skills.js.map +1 -0
- package/dist/lib/spinner.js.map +1 -0
- package/dist/lib/telemetry.js +3 -20
- package/dist/lib/telemetry.js.map +1 -1
- package/dist/lib/version-check.js +0 -20
- package/dist/lib/version-check.js.map +1 -1
- package/dist/matrix-logo.js +43 -21
- package/dist/matrix-logo.js.map +1 -1
- package/dist/mcp-server-lang.js +39 -0
- package/dist/mcp-server-lang.js.map +1 -0
- package/dist/mcp-server.js +37 -41
- package/dist/mcp-server.js.map +1 -1
- package/dist/profiles/analyst.js +10 -0
- package/dist/profiles/analyst.js.map +1 -0
- package/dist/profiles/bi.js +9 -0
- package/dist/profiles/bi.js.map +1 -0
- package/dist/profiles/dba.js +21 -0
- package/dist/profiles/dba.js.map +1 -0
- package/dist/profiles/fullstack.js +9 -0
- package/dist/profiles/fullstack.js.map +1 -0
- package/dist/profiles/index.js +39 -0
- package/dist/profiles/index.js.map +1 -0
- package/dist/profiles/mcps.js +23 -0
- package/dist/profiles/mcps.js.map +1 -0
- package/dist/profiles/qa.js +10 -0
- package/dist/profiles/qa.js.map +1 -0
- package/dist/profiles/scientist.js +9 -0
- package/dist/profiles/scientist.js.map +1 -0
- package/dist/profiles/toolchains.js +9 -0
- package/dist/profiles/toolchains.js.map +1 -0
- package/dist/tools/delegate-exec.js +2 -2
- package/dist/tools/delegate-exec.js.map +1 -1
- package/dist/tools/env-detect-deps.js +54 -0
- package/dist/tools/env-detect-deps.js.map +1 -0
- package/dist/tools/env-materialize.js +43 -0
- package/dist/tools/env-materialize.js.map +1 -0
- package/dist/tools/exec-status.js +1 -1
- package/dist/tools/exec-status.js.map +1 -1
- package/dist/tools/index.js +12 -32
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/lang-recipe.js +31 -0
- package/dist/tools/lang-recipe.js.map +1 -0
- package/dist/tools/lang-reference.js +34 -0
- package/dist/tools/lang-reference.js.map +1 -0
- package/dist/tools/plan.js +2 -2
- package/dist/tools/plan.js.map +1 -1
- package/dist/tools/profile-get.js +57 -0
- package/dist/tools/profile-get.js.map +1 -0
- package/dist/tools/session-activate.js +35 -0
- package/dist/tools/session-activate.js.map +1 -0
- package/dist/tools/session-create.js +83 -0
- package/dist/tools/session-create.js.map +1 -0
- package/dist/tools/session-list.js +29 -0
- package/dist/tools/session-list.js.map +1 -0
- package/dist/tools/session-shared.js +25 -0
- package/dist/tools/session-shared.js.map +1 -0
- package/dist/tools/validate-plan.js +2 -2
- package/dist/tools/validate-plan.js.map +1 -1
- package/dist/tui/app.js +116 -0
- package/dist/tui/app.js.map +1 -0
- package/dist/tui/components.js +0 -0
- package/dist/tui/components.js.map +1 -0
- package/dist/tui/debug.js +17 -0
- package/dist/tui/debug.js.map +1 -0
- package/dist/tui/index.js +2 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/launch.js +64 -0
- package/dist/tui/launch.js.map +1 -0
- package/dist/tui/markdown.js +40 -0
- package/dist/tui/markdown.js.map +1 -0
- package/dist/tui/opencode.js +28 -0
- package/dist/tui/opencode.js.map +1 -0
- package/dist/tui/palette-source.js +71 -0
- package/dist/tui/palette-source.js.map +1 -0
- package/dist/tui/palette.js +100 -0
- package/dist/tui/palette.js.map +1 -0
- package/dist/tui/state.js +105 -0
- package/dist/tui/state.js.map +1 -0
- package/dist/tui/theme.js +14 -0
- package/dist/tui/theme.js.map +1 -0
- package/docker/docker-compose.yml +44 -0
- package/headroom/docker-compose.yml +27 -0
- package/package.json +40 -16
- package/dist/adapters/supabase/allocation-gateway.js +0 -236
- package/dist/adapters/supabase/allocation-gateway.js.map +0 -1
- package/dist/adapters/supabase/analytics-gateway.js +0 -18
- package/dist/adapters/supabase/analytics-gateway.js.map +0 -1
- package/dist/adapters/supabase/client.js +0 -96
- package/dist/adapters/supabase/client.js.map +0 -1
- package/dist/adapters/supabase/context-gateway.js +0 -23
- package/dist/adapters/supabase/context-gateway.js.map +0 -1
- package/dist/adapters/supabase/gateway.js +0 -18
- package/dist/adapters/supabase/gateway.js.map +0 -1
- package/dist/adapters/supabase/task-gateway.js +0 -450
- package/dist/adapters/supabase/task-gateway.js.map +0 -1
- package/dist/auth.js +0 -118
- package/dist/auth.js.map +0 -1
- package/dist/cli/commands/init/project-step.js +0 -105
- package/dist/cli/commands/init/project-step.js.map +0 -1
- package/dist/constants.js +0 -9
- package/dist/constants.js.map +0 -1
- package/dist/core/ports.js +0 -2
- package/dist/core/ports.js.map +0 -1
- package/dist/database.types.js +0 -11
- package/dist/database.types.js.map +0 -1
- package/dist/lib/active-project.js +0 -28
- package/dist/lib/active-project.js.map +0 -1
- package/dist/lib/autopull.js +0 -13
- package/dist/lib/autopull.js.map +0 -1
- package/dist/lib/client-configs.js.map +0 -1
- package/dist/lib/client-install.js +0 -40
- package/dist/lib/client-install.js.map +0 -1
- package/dist/lib/dependencies.js.map +0 -1
- package/dist/lib/dependency-install.js.map +0 -1
- package/dist/lib/exec-delegate.js.map +0 -1
- package/dist/lib/exec-engines.js.map +0 -1
- package/dist/lib/harness.js.map +0 -1
- package/dist/lib/hooks.js.map +0 -1
- package/dist/lib/patterns.js.map +0 -1
- package/dist/lib/plan-delegate.js.map +0 -1
- package/dist/lib/project-context.js +0 -151
- package/dist/lib/project-context.js.map +0 -1
- package/dist/lib/provision-apply.js.map +0 -1
- package/dist/lib/provision-collect.js.map +0 -1
- package/dist/lib/provision.js.map +0 -1
- package/dist/lib/require-config.js +0 -32
- package/dist/lib/require-config.js.map +0 -1
- package/dist/lib/rules.js.map +0 -1
- package/dist/lib/sections.js +0 -89
- package/dist/lib/sections.js.map +0 -1
- package/dist/lib/skill-serve.js.map +0 -1
- package/dist/lib/skills-cache.js.map +0 -1
- package/dist/lib/skills.js.map +0 -1
- package/dist/lib/targets.js.map +0 -1
- package/dist/lib/task-history.js +0 -15
- package/dist/lib/task-history.js.map +0 -1
- package/dist/lib/validate-plan-delegate.js.map +0 -1
- package/dist/session-factory.js +0 -19
- package/dist/session-factory.js.map +0 -1
- package/dist/spinner.js.map +0 -1
- package/dist/tools/comment-task.js +0 -72
- package/dist/tools/comment-task.js.map +0 -1
- package/dist/tools/create-task.js +0 -129
- package/dist/tools/create-task.js.map +0 -1
- package/dist/tools/end-allocation.js +0 -38
- package/dist/tools/end-allocation.js.map +0 -1
- package/dist/tools/end-task-allocation.js +0 -37
- package/dist/tools/end-task-allocation.js.map +0 -1
- package/dist/tools/get-active-allocation.js +0 -69
- package/dist/tools/get-active-allocation.js.map +0 -1
- package/dist/tools/get-context.js +0 -48
- package/dist/tools/get-context.js.map +0 -1
- package/dist/tools/get-task.js +0 -137
- package/dist/tools/get-task.js.map +0 -1
- package/dist/tools/list-my-allocations.js +0 -71
- package/dist/tools/list-my-allocations.js.map +0 -1
- package/dist/tools/list-projects.js +0 -38
- package/dist/tools/list-projects.js.map +0 -1
- package/dist/tools/list-tasks.js +0 -93
- package/dist/tools/list-tasks.js.map +0 -1
- package/dist/tools/move-task.js +0 -82
- package/dist/tools/move-task.js.map +0 -1
- package/dist/tools/record-delivery.js +0 -71
- package/dist/tools/record-delivery.js.map +0 -1
- package/dist/tools/set-project.js +0 -52
- package/dist/tools/set-project.js.map +0 -1
- package/dist/tools/start-allocation.js +0 -32
- package/dist/tools/start-allocation.js.map +0 -1
- package/dist/tools/start-task-allocation.js +0 -75
- package/dist/tools/start-task-allocation.js.map +0 -1
- package/dist/tools/update-task.js +0 -139
- package/dist/tools/update-task.js.map +0 -1
- /package/dist/{spinner.js → lib/spinner.js} +0 -0
|
@@ -2,28 +2,19 @@ import { existsSync, mkdirSync, rmSync, cpSync, readdirSync, readFileSync, write
|
|
|
2
2
|
import { tmpdir } from 'node:os';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import AdmZip from 'adm-zip';
|
|
5
|
-
import { brand, env, homePath } from '
|
|
6
|
-
/**
|
|
7
|
-
* Skills como repo aberto (não pacote npm): o CLI baixa o zipball do GitHub pro
|
|
8
|
-
* cache local (`~/.nio/skills`) e lê de lá — `skillsDir()` resolve pra cá sem
|
|
9
|
-
* checkout, e `nio sync` atualiza o cache sem republicar o CLI.
|
|
10
|
-
*/
|
|
5
|
+
import { brand, env, homePath } from '../../brand.js';
|
|
11
6
|
const DEFAULT_REPO = brand.skillsRepo;
|
|
12
7
|
const DEFAULT_REF = brand.skillsRef;
|
|
13
|
-
/** `owner/repo` do repo de skills. Sobrescrevível via `NIO_SKILLS_REPO`. */
|
|
14
8
|
export function skillsRepo() {
|
|
15
9
|
return env('SKILLS_REPO') || DEFAULT_REPO;
|
|
16
10
|
}
|
|
17
|
-
/** Branch/tag a baixar. Sobrescrevível via `NIO_SKILLS_REF`. */
|
|
18
11
|
export function skillsRef() {
|
|
19
12
|
return env('SKILLS_REF') || DEFAULT_REF;
|
|
20
13
|
}
|
|
21
|
-
/** Raiz do cache local (o conteúdo do repo: `commands/`, `skills/`, `hooks/`, …). */
|
|
22
14
|
export function skillsCacheDir() {
|
|
23
15
|
return homePath('skills');
|
|
24
16
|
}
|
|
25
17
|
const MARKER = `${brand.homeDirName}-skills.json`;
|
|
26
|
-
/** Metadados do último fetch (repo/ref/quando). `null` se o cache não existe. */
|
|
27
18
|
export function cacheMeta() {
|
|
28
19
|
const p = join(skillsCacheDir(), MARKER);
|
|
29
20
|
if (!existsSync(p))
|
|
@@ -35,17 +26,20 @@ export function cacheMeta() {
|
|
|
35
26
|
return null;
|
|
36
27
|
}
|
|
37
28
|
}
|
|
38
|
-
/** O cache existe e parece válido (tem ao menos `skills/` ou `commands/`)? */
|
|
39
29
|
export function skillsCached() {
|
|
40
30
|
const dir = skillsCacheDir();
|
|
41
31
|
return existsSync(join(dir, 'skills')) || existsSync(join(dir, 'commands'));
|
|
42
32
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
33
|
+
export const SKILLS_TTL_MS = 7 * 24 * 60 * 60 * 1000;
|
|
34
|
+
export function isFetchedAtStale(fetchedAt, ttlMs = SKILLS_TTL_MS, now = Date.now()) {
|
|
35
|
+
if (!fetchedAt)
|
|
36
|
+
return true;
|
|
37
|
+
const age = now - new Date(fetchedAt).getTime();
|
|
38
|
+
return Number.isNaN(age) || age > ttlMs;
|
|
39
|
+
}
|
|
40
|
+
export function skillsCacheStale(ttlMs = SKILLS_TTL_MS, now = Date.now()) {
|
|
41
|
+
return isFetchedAtStale(cacheMeta()?.fetchedAt, ttlMs, now);
|
|
42
|
+
}
|
|
49
43
|
const DEFAULT_TIMEOUT_MS = 20_000;
|
|
50
44
|
export async function fetchSkills(opts = {}) {
|
|
51
45
|
const dir = skillsCacheDir();
|
|
@@ -64,13 +58,11 @@ export async function fetchSkills(opts = {}) {
|
|
|
64
58
|
if (!res.ok)
|
|
65
59
|
throw new Error(`HTTP ${res.status} ao baixar ${url}`);
|
|
66
60
|
const buf = Buffer.from(await res.arrayBuffer());
|
|
67
|
-
// O zipball tem um único dir raiz (`<repo>-<ref>/`); extrai e mira nele.
|
|
68
61
|
rmSync(staging, { recursive: true, force: true });
|
|
69
62
|
mkdirSync(staging, { recursive: true });
|
|
70
63
|
new AdmZip(buf).extractAllTo(staging, true);
|
|
71
64
|
const dirs = readdirSync(staging, { withFileTypes: true }).filter((e) => e.isDirectory());
|
|
72
65
|
const root = dirs.length === 1 ? join(staging, dirs[0].name) : staging;
|
|
73
|
-
// Substitui o cache pelo conteúdo baixado.
|
|
74
66
|
rmSync(dir, { recursive: true, force: true });
|
|
75
67
|
mkdirSync(dir, { recursive: true });
|
|
76
68
|
cpSync(root, dir, { recursive: true });
|
|
@@ -92,8 +84,10 @@ export async function fetchSkills(opts = {}) {
|
|
|
92
84
|
rmSync(staging, { recursive: true, force: true });
|
|
93
85
|
}
|
|
94
86
|
}
|
|
95
|
-
/** Garante que o cache exista (baixa só se ausente). Best-effort pro runtime do MCP. */
|
|
96
87
|
export async function ensureSkillsCache() {
|
|
97
|
-
|
|
88
|
+
if (skillsCached() && !skillsCacheStale()) {
|
|
89
|
+
return fetchSkills({ force: false });
|
|
90
|
+
}
|
|
91
|
+
return fetchSkills({ force: true });
|
|
98
92
|
}
|
|
99
93
|
//# sourceMappingURL=skills-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills-cache.js","sourceRoot":"","sources":["../../../src/lib/skills/skills-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,SAAS,EACT,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAQtD,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC;AACtC,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC;AAGpC,MAAM,UAAU,UAAU;IACxB,OAAO,GAAG,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC;AAC5C,CAAC;AAGD,MAAM,UAAU,SAAS;IACvB,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC;AAC1C,CAAC;AAGD,MAAM,UAAU,cAAc;IAC5B,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,cAAc,CAAC;AASlD,MAAM,UAAU,SAAS;IACvB,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAc,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAGD,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9E,CAAC;AAOD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAMrD,MAAM,UAAU,gBAAgB,CAC9B,SAAoC,EACpC,QAAgB,aAAa,EAC7B,MAAc,IAAI,CAAC,GAAG,EAAE;IAExB,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAChD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC;AAC1C,CAAC;AAGD,MAAM,UAAU,gBAAgB,CAAC,QAAgB,aAAa,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IACtF,OAAO,gBAAgB,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC;AAkBD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAgD,EAAE;IAElD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;IAExB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;QAClC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,GAAG,GAAG,+BAA+B,IAAI,mBAAmB,GAAG,EAAE,CAAC;IACxE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,WAAW,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;IACvD,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAGjD,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAGvE,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvC,MAAM,IAAI,GAAc,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAC3E,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;QAE/E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO;YAC3B,CAAC,CAAC,gBAAgB,SAAS,eAAe,GAAG,EAAE;YAC/C,CAAC,CAAE,GAAa,CAAC,OAAO,CAAC;QAC3B,IAAI,YAAY,EAAE,EAAE,CAAC;YACnB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAC1D,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAC1C,OAAO,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -3,12 +3,7 @@ import { createRequire } from 'node:module';
|
|
|
3
3
|
import { join, relative, sep, dirname } from 'node:path';
|
|
4
4
|
import { skillsCacheDir, skillsCached } from './skills-cache.js';
|
|
5
5
|
import { includePath } from './sections.js';
|
|
6
|
-
import { brand, env } from '
|
|
7
|
-
/**
|
|
8
|
-
* Diretório do conteúdo das skills. Resolve em ordem: `NIO_SKILLS_DIR`
|
|
9
|
-
* (checkout local), `@nio-cli/skills` via require.resolve (dev legado), ou o
|
|
10
|
-
* cache `~/.nio/skills` populado por `nio sync`/`init` (fluxo padrão).
|
|
11
|
-
*/
|
|
6
|
+
import { brand, env } from '../../brand.js';
|
|
12
7
|
export function skillsDir() {
|
|
13
8
|
const override = env('SKILLS_DIR');
|
|
14
9
|
if (override && existsSync(override))
|
|
@@ -18,7 +13,6 @@ export function skillsDir() {
|
|
|
18
13
|
return dirname(require.resolve(`${brand.skillsPackage}/package.json`));
|
|
19
14
|
}
|
|
20
15
|
catch {
|
|
21
|
-
/* pacote ausente (modelo repo-aberto) → cai pro cache local */
|
|
22
16
|
}
|
|
23
17
|
if (skillsCached())
|
|
24
18
|
return skillsCacheDir();
|
|
@@ -43,11 +37,6 @@ function listMarkdown(dir) {
|
|
|
43
37
|
walk(dir);
|
|
44
38
|
return out;
|
|
45
39
|
}
|
|
46
|
-
/**
|
|
47
|
-
* Coleta as linhas indentadas/vazias seguintes (bloco YAML folded `>` ou literal `|`)
|
|
48
|
-
* a partir de `lines[i + 1]`. Retorna o valor já juntado e o novo índice do cursor
|
|
49
|
-
* (última linha consumida) pro chamador continuar o loop dali.
|
|
50
|
-
*/
|
|
51
40
|
function collectBlockValue(lines, i, folded) {
|
|
52
41
|
const collected = [];
|
|
53
42
|
while (i + 1 < lines.length && (lines[i + 1].trim() === '' || /^\s+\S/.test(lines[i + 1]))) {
|
|
@@ -58,7 +47,6 @@ function collectBlockValue(lines, i, folded) {
|
|
|
58
47
|
: collected.join('\n').trim();
|
|
59
48
|
return { value, nextIndex: i };
|
|
60
49
|
}
|
|
61
|
-
/** Valor entre aspas simples/duplas → sem as aspas. Sem aspas → devolve como veio. */
|
|
62
50
|
function unquote(value) {
|
|
63
51
|
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
64
52
|
(value.startsWith("'") && value.endsWith("'"))) {
|
|
@@ -66,11 +54,7 @@ function unquote(value) {
|
|
|
66
54
|
}
|
|
67
55
|
return value;
|
|
68
56
|
}
|
|
69
|
-
|
|
70
|
-
* Parser de frontmatter minimalista: `key: value` de uma linha, mais blocos
|
|
71
|
-
* folded (`>`) e literal (`|`). Suficiente pros metadados (não é YAML completo).
|
|
72
|
-
*/
|
|
73
|
-
function parseFrontmatter(raw) {
|
|
57
|
+
export function parseFrontmatter(raw) {
|
|
74
58
|
const fm = {};
|
|
75
59
|
const match = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/.exec(raw);
|
|
76
60
|
if (!match)
|
|
@@ -92,13 +76,8 @@ function parseFrontmatter(raw) {
|
|
|
92
76
|
}
|
|
93
77
|
return { frontmatter: fm, body: raw.slice(match[0].length) };
|
|
94
78
|
}
|
|
95
|
-
|
|
96
|
-
export const KNOWN_CLIENTS = ['claude-code', 'codex', 'cowork'];
|
|
79
|
+
export const KNOWN_CLIENTS = ['claude-code', 'codex', 'cowork', 'opencode'];
|
|
97
80
|
const KNOWN_CLIENTS_SET = new Set(KNOWN_CLIENTS);
|
|
98
|
-
/**
|
|
99
|
-
* Parseia o campo `clients:` do frontmatter (lista separada por vírgula/espaço)
|
|
100
|
-
* num conjunto normalizado. Vazio/ausente/sem valor válido → `null` (= todos).
|
|
101
|
-
*/
|
|
102
81
|
export function parseClients(value) {
|
|
103
82
|
if (!value)
|
|
104
83
|
return null;
|
|
@@ -108,22 +87,16 @@ export function parseClients(value) {
|
|
|
108
87
|
.filter((s) => KNOWN_CLIENTS_SET.has(s));
|
|
109
88
|
return list.length > 0 ? [...new Set(list)] : null;
|
|
110
89
|
}
|
|
111
|
-
/** Um doc é visível pra um surface se não restringe clientes ou inclui aquele. */
|
|
112
90
|
export function docForSurface(doc, surface) {
|
|
113
91
|
if (!surface)
|
|
114
92
|
return true;
|
|
115
93
|
return !doc.clients || doc.clients.includes(surface);
|
|
116
94
|
}
|
|
117
|
-
/** Recorta a lista de docs pros visíveis num surface. */
|
|
118
95
|
export function filterSkillsForSurface(docs, surface) {
|
|
119
96
|
if (!surface)
|
|
120
97
|
return docs;
|
|
121
98
|
return docs.filter((d) => docForSurface(d, surface));
|
|
122
99
|
}
|
|
123
|
-
/**
|
|
124
|
-
* Filtra docs crus (relPath+conteúdo) pros visíveis num surface. Docs sem
|
|
125
|
-
* frontmatter de doc (ex.: scripts soltos) são mantidos por padrão.
|
|
126
|
-
*/
|
|
127
100
|
export function filterDocsForSurface(docs, surface) {
|
|
128
101
|
if (!surface)
|
|
129
102
|
return docs;
|
|
@@ -137,7 +110,6 @@ function typeForPath(relPath) {
|
|
|
137
110
|
const base = parts[parts.length - 1].toLowerCase();
|
|
138
111
|
if (top === 'commands')
|
|
139
112
|
return 'command';
|
|
140
|
-
// Só `SKILL.md` é a skill; arquivos de apoio (STANDARDS.md, etc.) são `doc`.
|
|
141
113
|
if (top === 'skills')
|
|
142
114
|
return base === 'skill.md' ? 'skill' : 'doc';
|
|
143
115
|
if (top === 'agents')
|
|
@@ -146,7 +118,6 @@ function typeForPath(relPath) {
|
|
|
146
118
|
return 'dependency';
|
|
147
119
|
return 'doc';
|
|
148
120
|
}
|
|
149
|
-
/** Id de invocação: skill = nome da pasta (SKILL.md); o resto = basename sem `.md`. */
|
|
150
121
|
function idForPath(relPath) {
|
|
151
122
|
const parts = relPath.split('/');
|
|
152
123
|
const base = parts[parts.length - 1];
|
|
@@ -157,12 +128,7 @@ function idForPath(relPath) {
|
|
|
157
128
|
function humanize(id) {
|
|
158
129
|
return id.replace(/[-_]/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase());
|
|
159
130
|
}
|
|
160
|
-
/**
|
|
161
|
-
* "Kinds" do pacote que viram docs. `rules/`, `hooks/`, `index.md`, `README.md`,
|
|
162
|
-
* `scripts/` etc. são deliberadamente ignorados — o CLI não lida com eles aqui.
|
|
163
|
-
*/
|
|
164
131
|
const SKILL_KINDS = ['commands', 'skills', 'agents', 'dependencies'];
|
|
165
|
-
/** Lê os `.md` dos kinds do pacote (`@nio-cli/skills`) como RawDoc[]. */
|
|
166
132
|
export function readSkillFiles(dir = skillsDir()) {
|
|
167
133
|
if (!existsSync(dir)) {
|
|
168
134
|
throw new Error(`Pacote de skills não encontrado em ${dir}. Instale/publique ${brand.skillsPackage}.`);
|
|
@@ -178,7 +144,6 @@ export function readSkillFiles(dir = skillsDir()) {
|
|
|
178
144
|
}
|
|
179
145
|
return docs;
|
|
180
146
|
}
|
|
181
|
-
/** Constrói os docs a partir de arquivos crus (frontmatter + corpo). */
|
|
182
147
|
export function toSkillDocs(files) {
|
|
183
148
|
return files
|
|
184
149
|
.map(({ path: relPath, raw }) => {
|
|
@@ -201,12 +166,6 @@ export function toSkillDocs(files) {
|
|
|
201
166
|
export function readSkillDocs(dir = skillsDir()) {
|
|
202
167
|
return toSkillDocs(readSkillFiles(dir));
|
|
203
168
|
}
|
|
204
|
-
/**
|
|
205
|
-
* Docs `dependency` do pacote — libs externas que a CLI oferece instalar no fim do
|
|
206
|
-
* `sync`/`init`. Escopadas pela **seleção** (role/área/stack, `general` em cascata):
|
|
207
|
-
* `dev/general` sempre, mais as da área/stack escolhidos. Sem seleção → todas.
|
|
208
|
-
* Best-effort: `[]` se o pacote não estiver disponível.
|
|
209
|
-
*/
|
|
210
169
|
export function readDependencies(selection, dir = skillsDir()) {
|
|
211
170
|
try {
|
|
212
171
|
let deps = readSkillDocs(dir).filter((d) => d.type === 'dependency');
|
|
@@ -218,10 +177,6 @@ export function readDependencies(selection, dir = skillsDir()) {
|
|
|
218
177
|
return [];
|
|
219
178
|
}
|
|
220
179
|
}
|
|
221
|
-
/**
|
|
222
|
-
* Mapa `nome de invocação → id sequencial (frontmatter)`, pra telemetria estável.
|
|
223
|
-
* Best-effort: mapa vazio se o `@nio-cli/skills` não estiver disponível.
|
|
224
|
-
*/
|
|
225
180
|
export function skillIdMap(dir = skillsDir()) {
|
|
226
181
|
const map = new Map();
|
|
227
182
|
try {
|
|
@@ -229,7 +184,6 @@ export function skillIdMap(dir = skillsDir()) {
|
|
|
229
184
|
map.set(d.id, d.uid);
|
|
230
185
|
}
|
|
231
186
|
catch {
|
|
232
|
-
/* @nio-cli/skills ausente → telemetria sem ids */
|
|
233
187
|
}
|
|
234
188
|
return map;
|
|
235
189
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/lib/skills/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAkB,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AA+C5C,MAAM,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IACnC,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,aAAa,eAAe,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,IAAI,YAAY,EAAE;QAAE,OAAO,cAAc,EAAE,CAAC;IAE5C,MAAM,IAAI,KAAK,CACb,6CAA6C,KAAK,CAAC,IAAI,4BAA4B;QACjF,6DAA6D,CAChE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAQ,EAAE;QACjC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACnC,IACH,KAAK,CAAC,MAAM,EAAE;gBACd,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,WAAW;gBAExC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,GAAG,CAAC;AACb,CAAC;AAOD,SAAS,iBAAiB,CACxB,KAAe,EACf,CAAS,EACT,MAAe;IAEf,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,KAAK,GAAG,MAAM;QAClB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE;QACjD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AACjC,CAAC;AAGD,SAAS,OAAO,CAAC,KAAa;IAC5B,IACE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,EAAE,GAA2B,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAElD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE1B,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;YAC5D,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;YACtB,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;YACpB,SAAS;QACX,CAAC;QAED,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/D,CAAC;AAGD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AACrF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS,aAAa,CAAC,CAAC;AAMzD,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,IAAI,GAAG,KAAK;SACf,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAGD,MAAM,UAAU,aAAa,CAAC,GAAa,EAAE,OAAsB;IACjE,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvD,CAAC;AAGD,MAAM,UAAU,sBAAsB,CAAC,IAAgB,EAAE,OAAsB;IAC7E,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAMD,MAAM,UAAU,oBAAoB,CAClC,IAAS,EACT,OAAsB;IAEtB,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpG,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,GAAG,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAEzC,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IACnE,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,GAAG,KAAK,cAAc;QAAE,OAAO,YAAY,CAAC;IAChD,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,SAAS,SAAS,CAAC,OAAe;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,EAAU;IAC1B,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3E,CAAC;AAMD,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAU,CAAC;AAG9E,MAAM,UAAU,cAAc,CAAC,MAAc,SAAS,EAAE;IACtD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,sBAAsB,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;IACzG,CAAC;IACD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,SAAS;QACnC,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGD,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAY,EAAE;QACxC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO;YACL,EAAE;YACF,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;YAC1D,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE,CAAC;YAC5D,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC;YAC1B,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE;YAC1C,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;YACpB,OAAO,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC;SAC3C,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc,SAAS,EAAE;IACrD,OAAO,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,CAAC;AAQD,MAAM,UAAU,gBAAgB,CAAC,SAAqB,EAAE,MAAc,SAAS,EAAE;IAC/E,IAAI,CAAC;QACH,IAAI,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACrE,IAAI,SAAS;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAMD,MAAM,UAAU,UAAU,CAAC,MAAc,SAAS,EAAE;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC7C,IAAI,CAAC;QACH,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAgBzD,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;IACzB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,OAAO;QACL,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC;QACxC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC;QACtC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;KACjC,CAAC;AACJ,CAAC"}
|
package/dist/lib/telemetry.js
CHANGED
|
@@ -2,10 +2,6 @@ import { env } from "../brand.js";
|
|
|
2
2
|
function enabled() {
|
|
3
3
|
return env("TELEMETRY") !== "0" && !env("NO_TELEMETRY");
|
|
4
4
|
}
|
|
5
|
-
/**
|
|
6
|
-
* Items (skills/commands/agents) provisionados a partir do plano do `provision`,
|
|
7
|
-
* já resolvidos pro id sequencial estável (via `uidByName`).
|
|
8
|
-
*/
|
|
9
5
|
export function provisionedItems(files, uidByName) {
|
|
10
6
|
const seen = new Set();
|
|
11
7
|
const items = [];
|
|
@@ -20,25 +16,12 @@ export function provisionedItems(files, uidByName) {
|
|
|
20
16
|
}
|
|
21
17
|
return items.sort((a, b) => a.name.localeCompare(b.name));
|
|
22
18
|
}
|
|
23
|
-
// Requisições em voo — o CLI é curto e pode encerrar antes do POST completar,
|
|
24
|
-
// então guardamos as promises pra dar flush (`flushTelemetry`) antes de sair.
|
|
25
19
|
const pending = [];
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (!supabase || !enabled())
|
|
20
|
+
export function track(event) {
|
|
21
|
+
if (!enabled())
|
|
29
22
|
return;
|
|
30
|
-
|
|
31
|
-
.invoke("track-usage", { body: { ...event, at: new Date().toISOString() } })
|
|
32
|
-
.then(() => undefined)
|
|
33
|
-
.catch(() => {
|
|
34
|
-
/* telemetria nunca quebra o fluxo */
|
|
35
|
-
});
|
|
36
|
-
pending.push(p);
|
|
23
|
+
void event;
|
|
37
24
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Espera as requisições de telemetria em voo (com teto de tempo) antes do CLI sair.
|
|
40
|
-
* No servidor MCP (long-lived) não é necessário — o loop já mantém o processo vivo.
|
|
41
|
-
*/
|
|
42
25
|
export async function flushTelemetry(timeoutMs = 4000) {
|
|
43
26
|
if (pending.length === 0)
|
|
44
27
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAmClC,SAAS,OAAO;IACd,OAAO,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC1D,CAAC;AAMD,MAAM,UAAU,gBAAgB,CAC9B,KAA4B,EAC5B,SAAqC;IAErC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GACL,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9C,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;YACzC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAID,MAAM,OAAO,GAAuB,EAAE,CAAC;AAOvC,MAAM,UAAU,KAAK,CAAC,KAAiB;IACrC,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO;IACvB,KAAK,KAAK,CAAC;AACb,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAS,GAAG,IAAI;IACnD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,CAAC,IAAI,CAAC;QACjB,QAAQ;QACR,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;KAC/D,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -4,33 +4,23 @@ import { fileURLToPath } from 'node:url';
|
|
|
4
4
|
import { dirname, join } from 'node:path';
|
|
5
5
|
import { brand } from '../brand.js';
|
|
6
6
|
function loadPkg() {
|
|
7
|
-
// Este módulo compila pra `dist/lib/version-check.js`, então o package.json fica
|
|
8
|
-
// dois níveis acima (raiz do pacote). Mesmo truque do `packageRoot()` do cowork-extension.
|
|
9
7
|
const here = dirname(fileURLToPath(import.meta.url));
|
|
10
8
|
const pkgPath = join(here, '..', '..', 'package.json');
|
|
11
9
|
return JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
12
10
|
}
|
|
13
11
|
const ONE_DAY_MS = 1000 * 60 * 60 * 24;
|
|
14
|
-
/**
|
|
15
|
-
* Inicia checagem em background (cacheada). Retorna o objeto pra inspeção.
|
|
16
|
-
*/
|
|
17
12
|
export function startVersionCheck() {
|
|
18
13
|
const pkg = loadPkg();
|
|
19
14
|
return updateNotifier({ pkg, updateCheckInterval: ONE_DAY_MS });
|
|
20
15
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Pro CLI interativo: chama .notify() com banner padrão no stdout.
|
|
23
|
-
*/
|
|
24
16
|
export function notifyCliIfUpdate() {
|
|
25
17
|
try {
|
|
26
18
|
const notifier = startVersionCheck();
|
|
27
19
|
notifier.notify({ defer: false, isGlobal: true });
|
|
28
20
|
}
|
|
29
21
|
catch {
|
|
30
|
-
// Best-effort. Nunca quebrar o CLI por causa de checagem de versão.
|
|
31
22
|
}
|
|
32
23
|
}
|
|
33
|
-
/** `a > b` em semver simples (major.minor.patch; ignora pré-release). */
|
|
34
24
|
function semverGt(a, b) {
|
|
35
25
|
const pa = a.split('-')[0].split('.').map((n) => parseInt(n, 10) || 0);
|
|
36
26
|
const pb = b.split('-')[0].split('.').map((n) => parseInt(n, 10) || 0);
|
|
@@ -42,11 +32,6 @@ function semverGt(a, b) {
|
|
|
42
32
|
}
|
|
43
33
|
return false;
|
|
44
34
|
}
|
|
45
|
-
/**
|
|
46
|
-
* Consulta o registro npm pela última versão publicada e compara com a instalada.
|
|
47
|
-
* Retorna `null` em qualquer falha (offline, timeout, registro bloqueado) — nunca
|
|
48
|
-
* quebra o fluxo do CLI. Usado pelo `nio sync` pra oferecer atualizar.
|
|
49
|
-
*/
|
|
50
35
|
export async function checkForUpdate(timeoutMs = 3000) {
|
|
51
36
|
try {
|
|
52
37
|
const pkg = loadPkg();
|
|
@@ -69,10 +54,6 @@ export async function checkForUpdate(timeoutMs = 3000) {
|
|
|
69
54
|
return null;
|
|
70
55
|
}
|
|
71
56
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Pro MCP server: SEM banner em stdout (corromperia JSON-RPC).
|
|
74
|
-
* Loga em stderr só se houver update — o Claude Code captura stderr.
|
|
75
|
-
*/
|
|
76
57
|
export function notifyMcpServerIfUpdate() {
|
|
77
58
|
try {
|
|
78
59
|
const notifier = startVersionCheck();
|
|
@@ -83,7 +64,6 @@ export function notifyMcpServerIfUpdate() {
|
|
|
83
64
|
}
|
|
84
65
|
}
|
|
85
66
|
catch {
|
|
86
|
-
// idem: best-effort.
|
|
87
67
|
}
|
|
88
68
|
}
|
|
89
69
|
//# sourceMappingURL=version-check.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/lib/version-check.ts"],"names":[],"mappings":"AAAA,OAAO,cAAmC,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,SAAS,OAAO;
|
|
1
|
+
{"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/lib/version-check.ts"],"names":[],"mappings":"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"}
|
package/dist/matrix-logo.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { envName } from './brand.js';
|
|
2
|
+
const ANIM = {
|
|
3
|
+
frames: 30,
|
|
4
|
+
frameMs: 45,
|
|
5
|
+
rainColumns: 42,
|
|
6
|
+
settleSeed: 42,
|
|
7
|
+
};
|
|
6
8
|
const MATRIX_CHARS = 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレワン0123456789';
|
|
7
9
|
const TRAIL_CHARS = '・。';
|
|
8
10
|
const NIO_LOGO = [
|
|
@@ -18,7 +20,6 @@ const LOGO_COLOR = '\x1b[1;32m';
|
|
|
18
20
|
const BRIGHT = '\x1b[92m';
|
|
19
21
|
const GREEN = '\x1b[32m';
|
|
20
22
|
const DIM = '\x1b[90m';
|
|
21
|
-
/** PRNG determinístico (mulberry32) — mesma seed, mesma saída sempre. */
|
|
22
23
|
function mulberry32(seed) {
|
|
23
24
|
let a = seed;
|
|
24
25
|
return () => {
|
|
@@ -34,7 +35,6 @@ function randInt(rand, min, max) {
|
|
|
34
35
|
function pickChar(rand, s) {
|
|
35
36
|
return s[Math.floor(rand() * s.length)] ?? ' ';
|
|
36
37
|
}
|
|
37
|
-
/** Desenha o logo centralizado e devolve o retângulo ocupado (a chuva não pisa nele). */
|
|
38
38
|
function placeLogo(width, height) {
|
|
39
39
|
const cells = Array.from({ length: height }, () => Array(width).fill(' '));
|
|
40
40
|
const logoH = NIO_LOGO.length;
|
|
@@ -48,18 +48,17 @@ function placeLogo(width, height) {
|
|
|
48
48
|
logoArea.add(`${logoR + i},${logoC + j}`);
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
return { cells, logoArea,
|
|
51
|
+
return { cells, logoArea, logoC };
|
|
52
52
|
}
|
|
53
|
-
|
|
54
|
-
function scatterRain(rand, canvas, width, height, logoC, logoW) {
|
|
53
|
+
function scatterRain(rand, canvas, width, height, logoC, logoW, fall) {
|
|
55
54
|
const cols = [];
|
|
56
|
-
for (let n = 0; n <
|
|
55
|
+
for (let n = 0; n < ANIM.rainColumns; n++) {
|
|
57
56
|
const col = randInt(rand, 0, width - 1);
|
|
58
57
|
if (!(col >= logoC - 1 && col <= logoC + logoW))
|
|
59
58
|
cols.push(col);
|
|
60
59
|
}
|
|
61
60
|
for (const col of cols) {
|
|
62
|
-
const start = randInt(rand, -10, 3);
|
|
61
|
+
const start = randInt(rand, -10, 3) + fall;
|
|
63
62
|
const trail = randInt(rand, 6, 18);
|
|
64
63
|
for (let i = 0; i < trail; i++) {
|
|
65
64
|
const row = start + i;
|
|
@@ -70,18 +69,15 @@ function scatterRain(rand, canvas, width, height, logoC, logoW) {
|
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
}
|
|
73
|
-
/** Pixels soltos, pra preencher o fundo sem ficar tão vazio. */
|
|
74
72
|
function scatterLoosePixels(rand, canvas, width, height) {
|
|
75
73
|
for (let n = 0; n < 50; n++) {
|
|
76
74
|
const row = randInt(rand, 0, height - 1);
|
|
77
75
|
const col = randInt(rand, 0, width - 1);
|
|
78
|
-
|
|
79
|
-
if (!canvas.logoArea.has(key) && canvas.cells[row][col] === ' ') {
|
|
76
|
+
if (!canvas.logoArea.has(`${row},${col}`) && canvas.cells[row][col] === ' ') {
|
|
80
77
|
canvas.cells[row][col] = pickChar(rand, MATRIX_CHARS);
|
|
81
78
|
}
|
|
82
79
|
}
|
|
83
80
|
}
|
|
84
|
-
/** Colore: logo em verde sólido, chuva/pixels em tons variados de verde (ou sem cor). */
|
|
85
81
|
function colorize(rand, canvas, width, height, colored) {
|
|
86
82
|
const lines = [];
|
|
87
83
|
for (let r = 0; r < height; r++) {
|
|
@@ -107,16 +103,42 @@ function colorize(rand, canvas, width, height, colored) {
|
|
|
107
103
|
}
|
|
108
104
|
return lines.join('\n');
|
|
109
105
|
}
|
|
110
|
-
|
|
106
|
+
function renderFrame(opts, seed, fall) {
|
|
111
107
|
const width = opts.width ?? 70;
|
|
112
108
|
const height = opts.height ?? 24;
|
|
113
|
-
const seed = opts.seed ?? 42;
|
|
114
109
|
const colored = opts.colored ?? Boolean(process.stdout.isTTY);
|
|
115
110
|
const rand = mulberry32(seed);
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
scatterRain(rand, canvas, width, height, logoC, NIO_LOGO[0].length);
|
|
111
|
+
const canvas = placeLogo(width, height);
|
|
112
|
+
scatterRain(rand, canvas, width, height, canvas.logoC, NIO_LOGO[0].length, fall);
|
|
119
113
|
scatterLoosePixels(rand, canvas, width, height);
|
|
120
114
|
return colorize(rand, canvas, width, height, colored);
|
|
121
115
|
}
|
|
116
|
+
export function renderMatrixLogo(opts = {}) {
|
|
117
|
+
return renderFrame(opts, opts.seed ?? ANIM.settleSeed, 0);
|
|
118
|
+
}
|
|
119
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
120
|
+
function animationDisabled(width, height) {
|
|
121
|
+
return (!process.stdout.isTTY ||
|
|
122
|
+
Boolean(process.env.CI) ||
|
|
123
|
+
Boolean(process.env[envName('NO_ANIM')]) ||
|
|
124
|
+
(process.stdout.rows ?? 24) < height + 2 ||
|
|
125
|
+
(process.stdout.columns ?? 80) < width);
|
|
126
|
+
}
|
|
127
|
+
export async function animateMatrixLogo(opts = {}) {
|
|
128
|
+
const width = opts.width ?? 70;
|
|
129
|
+
const height = opts.height ?? 24;
|
|
130
|
+
if (animationDisabled(width, height)) {
|
|
131
|
+
process.stdout.write(renderMatrixLogo(opts) + '\n');
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const up = `\x1b[${height}A`;
|
|
135
|
+
for (let f = 0; f <= ANIM.frames; f++) {
|
|
136
|
+
const last = f === ANIM.frames;
|
|
137
|
+
const seed = last ? (opts.seed ?? ANIM.settleSeed) : (ANIM.settleSeed + f * 0x9e37) >>> 0;
|
|
138
|
+
const frame = last ? renderMatrixLogo(opts) : renderFrame(opts, seed, f - ANIM.frames);
|
|
139
|
+
process.stdout.write((f === 0 ? '' : up) + frame + '\n');
|
|
140
|
+
if (!last)
|
|
141
|
+
await sleep(ANIM.frameMs);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
122
144
|
//# sourceMappingURL=matrix-logo.js.map
|
package/dist/matrix-logo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matrix-logo.js","sourceRoot":"","sources":["../src/matrix-logo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"matrix-logo.js","sourceRoot":"","sources":["../src/matrix-logo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import './lib/load-env.js';
|
|
3
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
4
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
5
|
+
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import { VERSION } from './version.js';
|
|
7
|
+
import { createKnowledgeStore } from './adapters/lang/knowledge-store.js';
|
|
8
|
+
import { createLanguageCatalog } from './adapters/lang/language-catalog.js';
|
|
9
|
+
import * as langReference from './tools/lang-reference.js';
|
|
10
|
+
import * as langRecipe from './tools/lang-recipe.js';
|
|
11
|
+
const BIN = 'nio-lang';
|
|
12
|
+
async function main() {
|
|
13
|
+
const store = createKnowledgeStore();
|
|
14
|
+
const catalog = createLanguageCatalog();
|
|
15
|
+
const server = new Server({ name: BIN, version: VERSION }, { capabilities: { tools: {} } });
|
|
16
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
17
|
+
tools: [langReference.definition, langRecipe.definition],
|
|
18
|
+
}));
|
|
19
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
20
|
+
if (request.params.name === langReference.definition.name) {
|
|
21
|
+
return langReference.handleLangReference(request.params.arguments ?? {}, store);
|
|
22
|
+
}
|
|
23
|
+
if (request.params.name === langRecipe.definition.name) {
|
|
24
|
+
return langRecipe.handleLangRecipe(request.params.arguments ?? {}, catalog);
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: 'text', text: `Tool desconhecida: ${request.params.name}` }],
|
|
28
|
+
isError: true,
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
const transport = new StdioServerTransport();
|
|
32
|
+
await server.connect(transport);
|
|
33
|
+
console.error(`[${BIN}] servidor iniciado (stdio)`);
|
|
34
|
+
}
|
|
35
|
+
main().catch((err) => {
|
|
36
|
+
console.error(`[${BIN}] erro fatal: ${err.message}`);
|
|
37
|
+
process.exit(1);
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=mcp-server-lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server-lang.js","sourceRoot":"","sources":["../src/mcp-server-lang.ts"],"names":[],"mappings":";AAUA,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAErD,MAAM,GAAG,GAAG,UAAU,CAAC;AAEvB,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5F,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC;KACzD,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC1D,OAAO,aAAa,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvD,OAAO,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,6BAA6B,CAAC,CAAC;AACtD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,iBAAkB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|