nodefony 7.0.2 → 10.0.0-alpha.2
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/.ai/symbols.json +36135 -0
- package/LICENSE +544 -0
- package/README.md +316 -694
- package/bin/nodefony +2183 -85
- package/dist/client/Container.js +367 -0
- package/dist/client/Event.js +198 -0
- package/dist/client/Service.js +344 -0
- package/dist/client/Tools.js +162 -0
- package/dist/client/client/ClientKernel.js +276 -0
- package/dist/client/client/angular/index.js +352 -0
- package/dist/client/client/announce.js +212 -0
- package/dist/client/client/debugbar/DebugBar.js +1624 -0
- package/dist/client/client/debugbar/format.js +103 -0
- package/dist/client/client/debugbar/hmr.js +37 -0
- package/dist/client/client/debugbar/index.js +29 -0
- package/dist/client/client/debugbar/model.js +133 -0
- package/dist/client/client/debugbar/network.js +173 -0
- package/dist/client/client/debugbar/profile.js +114 -0
- package/dist/client/client/index.js +34 -0
- package/dist/client/client/react/index.js +268 -0
- package/dist/client/client/realtime/AdaptiveRate.js +240 -0
- package/dist/client/client/realtime/BrowserWsTransport.js +57 -0
- package/dist/client/client/realtime/RealtimeClient.js +898 -0
- package/dist/client/client/realtime/localEvents.js +56 -0
- package/dist/client/client/realtime/notice.js +125 -0
- package/dist/client/client/realtime/observe.js +280 -0
- package/dist/client/client/roles/index.js +3 -0
- package/dist/client/client/roles/registry.js +97 -0
- package/dist/client/client/roles/roles.js +91 -0
- package/dist/client/client/shim/events.js +88 -0
- package/dist/client/client/shim/util.js +20 -0
- package/dist/client/client/svelte/index.js +319 -0
- package/dist/client/client/syslog/context.js +122 -0
- package/dist/client/client/syslog/errors.js +49 -0
- package/dist/client/client/syslog/uplink.js +106 -0
- package/dist/client/client/vue/index.js +321 -0
- package/dist/client/colors.js +63 -0
- package/dist/client/debugbar.standalone.js +4274 -0
- package/dist/client/realtime/IRealtimeTransport.js +32 -0
- package/dist/client/realtime/JsonRpcPeer.js +251 -0
- package/dist/client/realtime/channelRate.js +39 -0
- package/dist/client/realtime/platformChannels.js +155 -0
- package/dist/client/syslog/Pdu.js +224 -0
- package/dist/client/syslog/Syslog.js +1159 -0
- package/dist/client/syslog/drivers/pduFlow.js +106 -0
- package/dist/client/syslog/drivers/pduProtocol.js +28 -0
- package/dist/client/syslog/logColor.js +80 -0
- package/dist/client/types/src/Container.d.ts +221 -0
- package/dist/client/types/src/Event.d.ts +171 -0
- package/dist/client/types/src/FileClass.d.ts +184 -0
- package/dist/client/types/src/Service.d.ts +165 -0
- package/dist/client/types/src/Tools.d.ts +116 -0
- package/dist/client/types/src/client/ClientKernel.d.ts +90 -0
- package/dist/client/types/src/client/IClientKernel.d.ts +195 -0
- package/dist/client/types/src/client/angular/index.d.ts +273 -0
- package/dist/client/types/src/client/announce.d.ts +74 -0
- package/dist/client/types/src/client/debugbar/DebugBar.d.ts +279 -0
- package/dist/client/types/src/client/debugbar/format.d.ts +48 -0
- package/dist/client/types/src/client/debugbar/hmr.d.ts +16 -0
- package/dist/client/types/src/client/debugbar/index.d.ts +30 -0
- package/dist/client/types/src/client/debugbar/model.d.ts +158 -0
- package/dist/client/types/src/client/debugbar/network.d.ts +55 -0
- package/dist/client/types/src/client/debugbar/profile.d.ts +99 -0
- package/dist/client/types/src/client/index.d.ts +47 -0
- package/dist/client/types/src/client/react/index.d.ts +207 -0
- package/dist/client/types/src/client/realtime/AdaptiveRate.d.ts +138 -0
- package/dist/client/types/src/client/realtime/BrowserWsTransport.d.ts +27 -0
- package/dist/client/types/src/client/realtime/RealtimeClient.d.ts +573 -0
- package/dist/client/types/src/client/realtime/localEvents.d.ts +53 -0
- package/dist/client/types/src/client/realtime/notice.d.ts +70 -0
- package/dist/client/types/src/client/realtime/observe.d.ts +284 -0
- package/dist/client/types/src/client/roles/index.d.ts +15 -0
- package/dist/client/types/src/client/roles/registry.d.ts +72 -0
- package/dist/client/types/src/client/roles/roles.d.ts +68 -0
- package/dist/client/types/src/client/shim/cli-color.d.ts +2 -0
- package/dist/client/types/src/client/shim/events.d.ts +39 -0
- package/dist/client/types/src/client/shim/util.d.ts +14 -0
- package/dist/client/types/src/client/svelte/index.d.ts +216 -0
- package/dist/client/types/src/client/syslog/context.d.ts +76 -0
- package/dist/client/types/src/client/syslog/errors.d.ts +46 -0
- package/dist/client/types/src/client/syslog/uplink.d.ts +89 -0
- package/dist/client/types/src/client/transport/websocket.d.ts +5 -0
- package/dist/client/types/src/client/vue/index.d.ts +234 -0
- package/dist/client/types/src/colors.d.ts +32 -0
- package/dist/client/types/src/config/infra.d.ts +171 -0
- package/dist/client/types/src/kernel/bootReport.d.ts +112 -0
- package/dist/client/types/src/kernel/readinessRegistry.d.ts +104 -0
- package/dist/client/types/src/realtime/IRealtimeSocket.d.ts +142 -0
- package/dist/client/types/src/realtime/IRealtimeTransport.d.ts +50 -0
- package/dist/client/types/src/realtime/JsonRpcPeer.d.ts +251 -0
- package/dist/client/types/src/realtime/RealtimeEventMap.d.ts +269 -0
- package/dist/client/types/src/realtime/channelRate.d.ts +55 -0
- package/dist/client/types/src/realtime/platformChannels.d.ts +147 -0
- package/dist/client/types/src/syslog/Pdu.d.ts +134 -0
- package/dist/client/types/src/syslog/Syslog.d.ts +482 -0
- package/dist/client/types/src/syslog/drivers/ILogDriver.d.ts +177 -0
- package/dist/client/types/src/syslog/drivers/pduFlow.d.ts +53 -0
- package/dist/client/types/src/syslog/drivers/pduProtocol.d.ts +20 -0
- package/dist/client/types/src/syslog/logColor.d.ts +59 -0
- package/dist/client/types/src/types/ICliKernel.d.ts +28 -0
- package/dist/client/types/src/types/ICommand.d.ts +14 -0
- package/dist/client/types/src/types/IContainer.d.ts +35 -0
- package/dist/client/types/src/types/IKernel.d.ts +138 -0
- package/dist/client/types/src/types/IMcpTool.d.ts +157 -0
- package/dist/client/types/src/types/IModule.d.ts +73 -0
- package/dist/client/types/src/types/IPage.d.ts +119 -0
- package/dist/client/types/src/types/IService.d.ts +62 -0
- package/dist/client/types/src/types/ISyslog.d.ts +58 -0
- package/dist/client/types/src/types/ITransport.d.ts +5 -0
- package/dist/client/types/src/types/globals.d.ts +47 -0
- package/dist/node/Cli.js +750 -0
- package/dist/node/Container.js +367 -0
- package/dist/node/Error.js +309 -0
- package/dist/node/Event.js +198 -0
- package/dist/node/FileClass.js +308 -0
- package/dist/node/Nodefony.js +78 -0
- package/dist/node/Service.js +344 -0
- package/dist/node/Tools.js +205 -0
- package/dist/node/bin/resolveLocalCli.js +10 -0
- package/dist/node/bundler/index.js +103 -0
- package/dist/node/cli/agentTargets.js +461 -0
- package/dist/node/cli/aiMcp.js +553 -0
- package/dist/node/cli/aiMcpReport.js +129 -0
- package/dist/node/cli/aiSync.js +323 -0
- package/dist/node/cli/aiSyncReport.js +142 -0
- package/dist/node/cli/card.js +186 -0
- package/dist/node/cli/cardReport.js +110 -0
- package/dist/node/cli/completion.js +415 -0
- package/dist/node/cli/create.js +805 -0
- package/dist/node/cli/env.js +332 -0
- package/dist/node/cli/envReport.js +159 -0
- package/dist/node/cli/execPortable.js +60 -0
- package/dist/node/cli/gitHooks.js +191 -0
- package/dist/node/cli/gitHooksReport.js +119 -0
- package/dist/node/cli/globalFlags.js +67 -0
- package/dist/node/cli/helpReport.js +288 -0
- package/dist/node/cli/manPage.js +165 -0
- package/dist/node/cli/nodefonyBin.js +61 -0
- package/dist/node/cli/outdated.js +144 -0
- package/dist/node/cli/progress.js +555 -0
- package/dist/node/cli/projectRoot.js +32 -0
- package/dist/node/cli/promptPassword.js +44 -0
- package/dist/node/cli/prompts.js +86 -0
- package/dist/node/cli/scaffold/destination.js +92 -0
- package/dist/node/cli/scaffold/engine.js +2156 -0
- package/dist/node/cli/scaffold/entityFields.js +589 -0
- package/dist/node/cli/scaffold/format.js +243 -0
- package/dist/node/cli/scaffold/interactive.js +124 -0
- package/dist/node/cli/scaffold/moduleLayout.js +38 -0
- package/dist/node/cli/scaffold/reservedEntities.js +74 -0
- package/dist/node/cli/scaffold/spec.js +704 -0
- package/dist/node/cli/scaffold/steps.js +40 -0
- package/dist/node/cli/scaffold/userContractSource.js +133 -0
- package/dist/node/cli/scaffold/versions.js +57 -0
- package/dist/node/cli/scaffold/writer.js +172 -0
- package/dist/node/cli/startMenu.js +496 -0
- package/dist/node/cli/symbols.js +205 -0
- package/dist/node/cli/sysexits.js +34 -0
- package/dist/node/cli/tableReport.js +184 -0
- package/dist/node/cli/usageReport.js +144 -0
- package/dist/node/colors.js +63 -0
- package/dist/node/command/Builder.js +153 -0
- package/dist/node/command/Command.js +348 -0
- package/dist/node/config/configProvenance.js +101 -0
- package/dist/node/config/defaults.js +39 -0
- package/dist/node/config/defineConfig.js +129 -0
- package/dist/node/config/defineEnv.js +264 -0
- package/dist/node/config/envExample.js +41 -0
- package/dist/node/config/envOverride.js +423 -0
- package/dist/node/config/infra.js +163 -0
- package/dist/node/config/reactivity.js +23 -0
- package/dist/node/config/reservedEnv.js +118 -0
- package/dist/node/config/schema.js +134 -0
- package/dist/node/config/use.js +24 -0
- package/dist/node/finder/File.js +49 -0
- package/dist/node/finder/FileResult.js +86 -0
- package/dist/node/finder/Finder.js +201 -0
- package/dist/node/finder/Result.js +45 -0
- package/dist/node/index.js +121 -0
- package/dist/node/kernel/BootConfigurationError.js +54 -0
- package/dist/node/kernel/CliKernel.js +630 -0
- package/dist/node/kernel/Kernel.js +2198 -0
- package/dist/node/kernel/Module.js +453 -0
- package/dist/node/kernel/adminPlane/adminCaller.js +98 -0
- package/dist/node/kernel/adminPlane/adminRbac.js +51 -0
- package/dist/node/kernel/adminPlane/catalog.js +158 -0
- package/dist/node/kernel/adminPlane/executeAdmin.js +78 -0
- package/dist/node/kernel/checks/deep.js +335 -0
- package/dist/node/kernel/checks/freshness.js +139 -0
- package/dist/node/kernel/checks/gating.js +231 -0
- package/dist/node/kernel/checks/guards.js +232 -0
- package/dist/node/kernel/checks/lastBoot.js +136 -0
- package/dist/node/kernel/checks/live.js +330 -0
- package/dist/node/kernel/checks/packageDeps.js +292 -0
- package/dist/node/kernel/checks/readiness.js +153 -0
- package/dist/node/kernel/checks/renderReport.js +780 -0
- package/dist/node/kernel/checks/report.js +421 -0
- package/dist/node/kernel/checks/runDoctor.js +731 -0
- package/dist/node/kernel/checks/surface.js +364 -0
- package/dist/node/kernel/checks/walk.js +100 -0
- package/dist/node/kernel/checks/wiring.js +450 -0
- package/dist/node/kernel/commands/AiMcpCommand.js +65 -0
- package/dist/node/kernel/commands/AiSyncCommand.js +48 -0
- package/dist/node/kernel/commands/BuildCommand.js +49 -0
- package/dist/node/kernel/commands/CardCommand.js +50 -0
- package/dist/node/kernel/commands/ClusterCommand.js +58 -0
- package/dist/node/kernel/commands/CompletionCommand.js +31 -0
- package/dist/node/kernel/commands/CreateCommand.js +45 -0
- package/dist/node/kernel/commands/DevCommand.js +99 -0
- package/dist/node/kernel/commands/DoctorCommand.js +115 -0
- package/dist/node/kernel/commands/EnvCommand.js +52 -0
- package/dist/node/kernel/commands/GitHooksCommand.js +47 -0
- package/dist/node/kernel/commands/InspectCommand.js +153 -0
- package/dist/node/kernel/commands/InstallCommand.js +20 -0
- package/dist/node/kernel/commands/MenuCommand.js +261 -0
- package/dist/node/kernel/commands/OutdatedCommand.js +164 -0
- package/dist/node/kernel/commands/ProdCommand.js +60 -0
- package/dist/node/kernel/commands/StatusCommand.js +30 -0
- package/dist/node/kernel/commands/StopCommand.js +35 -0
- package/dist/node/kernel/commands/SymbolsCommand.js +45 -0
- package/dist/node/kernel/commands/runtimeLauncher.js +95 -0
- package/dist/node/kernel/decorators/kernelDecorator.js +110 -0
- package/dist/node/kernel/injector/injector.js +137 -0
- package/dist/node/kernel/injector/serviceOrder.js +106 -0
- package/dist/node/kernel/inspect/adminSubjects.js +194 -0
- package/dist/node/kernel/inspect/docOutline.js +86 -0
- package/dist/node/kernel/lifecycleTags.js +76 -0
- package/dist/node/kernel/moduleConfig.js +75 -0
- package/dist/node/kernel/moduleGating.js +68 -0
- package/dist/node/kernel/readinessRegistry.js +98 -0
- package/dist/node/kernel/resolveModuleEntry.js +61 -0
- package/dist/node/mcp/caller.js +40 -0
- package/dist/node/mcp/guard.js +51 -0
- package/dist/node/mcp/protocol.js +157 -0
- package/dist/node/mcp/server.js +216 -0
- package/dist/node/mcp/tools.js +861 -0
- package/dist/node/oauth/authorizationServer.js +221 -0
- package/dist/node/oauth/protectedResource.js +293 -0
- package/dist/node/package.js +4 -0
- package/dist/node/realtime/IRealtimeTransport.js +32 -0
- package/dist/node/realtime/JsonRpcPeer.js +251 -0
- package/dist/node/realtime/RealtimeEventMap.js +15 -0
- package/dist/node/realtime/channelRate.js +39 -0
- package/dist/node/realtime/platformChannels.js +155 -0
- package/dist/node/runtime/GcScheduler.js +92 -0
- package/dist/node/runtime/RequestContext.js +76 -0
- package/dist/node/runtime/bearer.js +84 -0
- package/dist/node/runtime/engineEnvironment.js +79 -0
- package/dist/node/runtime/loadEnv.js +105 -0
- package/dist/node/runtime/pageFacets.js +85 -0
- package/dist/node/runtime/pageFilters.js +103 -0
- package/dist/node/runtime/pageGuard.js +84 -0
- package/dist/node/runtime/pageQuery.js +160 -0
- package/dist/node/runtime/pageSort.js +114 -0
- package/dist/node/runtime/redact.js +43 -0
- package/dist/node/runtime/withTimeout.js +71 -0
- package/dist/node/service/cluster/ClusterManager.js +202 -0
- package/dist/node/service/cluster/ClusterProbeAggregator.js +120 -0
- package/dist/node/service/cluster/ClusterRelay.js +74 -0
- package/dist/node/service/cluster/clusterMaster.js +65 -0
- package/dist/node/service/cluster/clusterMessage.js +70 -0
- package/dist/node/service/cluster/cpuQuota.js +59 -0
- package/dist/node/service/cluster/instanceProbe.js +52 -0
- package/dist/node/service/cluster/podEnvironment.js +48 -0
- package/dist/node/service/cluster/processProbe.js +70 -0
- package/dist/node/service/cluster/richProcessProbe.js +115 -0
- package/dist/node/service/cluster/topology.js +71 -0
- package/dist/node/service/dev/BootReporter.js +490 -0
- package/dist/node/service/dev/DevSupervisor.js +1004 -0
- package/dist/node/service/dev/bootVerdict.js +158 -0
- package/dist/node/service/dev/detachedStart.js +372 -0
- package/dist/node/service/dev/devProcess.js +1137 -0
- package/dist/node/service/dev/devProjects.js +138 -0
- package/dist/node/service/dev/devStatusReport.js +395 -0
- package/dist/node/service/dev/devStop.js +263 -0
- package/dist/node/service/fetchService.js +35 -0
- package/dist/node/service/gitService.js +62 -0
- package/dist/node/syslog/Pdu.js +224 -0
- package/dist/node/syslog/Syslog.js +1159 -0
- package/dist/node/syslog/drivers/ClusterFileLogDriver.js +114 -0
- package/dist/node/syslog/drivers/FileLogDriver.js +127 -0
- package/dist/node/syslog/drivers/ILogDriver.js +26 -0
- package/dist/node/syslog/drivers/LokiLogDriver.js +144 -0
- package/dist/node/syslog/drivers/MemoryLogDriver.js +33 -0
- package/dist/node/syslog/drivers/OpenSearchLogDriver.js +159 -0
- package/dist/node/syslog/drivers/builtinLogDrivers.js +114 -0
- package/dist/node/syslog/drivers/filterPdus.js +71 -0
- package/dist/node/syslog/drivers/logDriverRegistry.js +83 -0
- package/dist/node/syslog/drivers/opensearchShared.js +17 -0
- package/dist/node/syslog/drivers/pduFlow.js +106 -0
- package/dist/node/syslog/drivers/pduProtocol.js +28 -0
- package/dist/node/syslog/httpFetch.js +43 -0
- package/dist/node/syslog/logColor.js +80 -0
- package/dist/node/syslog/sinks/FileSink.js +142 -0
- package/dist/node/syslog/transports/BatchingHttpTransport.js +98 -0
- package/dist/node/syslog/transports/ConsoleTransport.js +14 -0
- package/dist/node/syslog/transports/FileTransport.js +17 -0
- package/dist/node/syslog/transports/HttpTransport.js +44 -0
- package/dist/node/syslog/transports/LokiTransport.js +80 -0
- package/dist/node/syslog/transports/OpenSearchTransport.js +53 -0
- package/dist/node/syslog/transports/SyslogTransport.js +13 -0
- package/dist/node/syslog/transports/index.js +8 -0
- package/dist/node/testing/index.js +190 -0
- package/dist/types/Cli.d.ts +177 -0
- package/dist/types/Container.d.ts +221 -0
- package/dist/types/Error.d.ts +162 -0
- package/dist/types/Event.d.ts +171 -0
- package/dist/types/FileClass.d.ts +184 -0
- package/dist/types/Nodefony.d.ts +66 -0
- package/dist/types/Service.d.ts +165 -0
- package/dist/types/Tools.d.ts +116 -0
- package/dist/types/bin/resolveLocalCli.d.ts +49 -0
- package/dist/types/bundler/index.d.ts +66 -0
- package/dist/types/cli/agentTargets.d.ts +378 -0
- package/dist/types/cli/aiMcp.d.ts +239 -0
- package/dist/types/cli/aiMcpReport.d.ts +113 -0
- package/dist/types/cli/aiSync.d.ts +68 -0
- package/dist/types/cli/aiSyncReport.d.ts +149 -0
- package/dist/types/cli/card.d.ts +49 -0
- package/dist/types/cli/cardReport.d.ts +127 -0
- package/dist/types/cli/completion.d.ts +154 -0
- package/dist/types/cli/create.d.ts +177 -0
- package/dist/types/cli/env.d.ts +103 -0
- package/dist/types/cli/envReport.d.ts +153 -0
- package/dist/types/cli/execPortable.d.ts +54 -0
- package/dist/types/cli/gitHooks.d.ts +48 -0
- package/dist/types/cli/gitHooksReport.d.ts +101 -0
- package/dist/types/cli/globalFlags.d.ts +48 -0
- package/dist/types/cli/helpReport.d.ts +110 -0
- package/dist/types/cli/manPage.d.ts +21 -0
- package/dist/types/cli/nodefonyBin.d.ts +45 -0
- package/dist/types/cli/outdated.d.ts +119 -0
- package/dist/types/cli/progress.d.ts +349 -0
- package/dist/types/cli/projectRoot.d.ts +19 -0
- package/dist/types/cli/promptPassword.d.ts +22 -0
- package/dist/types/cli/prompts.d.ts +102 -0
- package/dist/types/cli/scaffold/destination.d.ts +70 -0
- package/dist/types/cli/scaffold/engine.d.ts +545 -0
- package/dist/types/cli/scaffold/entityFields.d.ts +238 -0
- package/dist/types/cli/scaffold/format.d.ts +78 -0
- package/dist/types/cli/scaffold/interactive.d.ts +11 -0
- package/dist/types/cli/scaffold/moduleLayout.d.ts +69 -0
- package/dist/types/cli/scaffold/reservedEntities.d.ts +49 -0
- package/dist/types/cli/scaffold/spec.d.ts +159 -0
- package/dist/types/cli/scaffold/steps.d.ts +24 -0
- package/dist/types/cli/scaffold/userContractSource.d.ts +86 -0
- package/dist/types/cli/scaffold/versions.d.ts +14 -0
- package/dist/types/cli/scaffold/writer.d.ts +100 -0
- package/dist/types/cli/startMenu.d.ts +195 -0
- package/dist/types/cli/symbols.d.ts +84 -0
- package/dist/types/cli/sysexits.d.ts +31 -0
- package/dist/types/cli/tableReport.d.ts +44 -0
- package/dist/types/cli/usageReport.d.ts +108 -0
- package/dist/types/client/ClientKernel.d.ts +90 -0
- package/dist/types/client/IClientKernel.d.ts +195 -0
- package/dist/types/client/angular/index.d.ts +273 -0
- package/dist/types/client/announce.d.ts +74 -0
- package/dist/types/client/debugbar/DebugBar.d.ts +279 -0
- package/dist/types/client/debugbar/format.d.ts +48 -0
- package/dist/types/client/debugbar/hmr.d.ts +16 -0
- package/dist/types/client/debugbar/index.d.ts +30 -0
- package/dist/types/client/debugbar/model.d.ts +158 -0
- package/dist/types/client/debugbar/network.d.ts +55 -0
- package/dist/types/client/debugbar/profile.d.ts +99 -0
- package/dist/types/client/index.d.ts +47 -0
- package/dist/types/client/react/index.d.ts +207 -0
- package/dist/types/client/realtime/AdaptiveRate.d.ts +138 -0
- package/dist/types/client/realtime/BrowserWsTransport.d.ts +27 -0
- package/dist/types/client/realtime/RealtimeClient.d.ts +573 -0
- package/dist/types/client/realtime/localEvents.d.ts +53 -0
- package/dist/types/client/realtime/notice.d.ts +70 -0
- package/dist/types/client/realtime/observe.d.ts +284 -0
- package/dist/types/client/roles/index.d.ts +15 -0
- package/dist/types/client/roles/registry.d.ts +72 -0
- package/dist/types/client/roles/roles.d.ts +68 -0
- package/dist/types/client/shim/cli-color.d.ts +2 -0
- package/dist/types/client/shim/events.d.ts +39 -0
- package/dist/types/client/shim/util.d.ts +14 -0
- package/dist/types/client/svelte/index.d.ts +216 -0
- package/dist/types/client/syslog/context.d.ts +76 -0
- package/dist/types/client/syslog/errors.d.ts +46 -0
- package/dist/types/client/syslog/uplink.d.ts +89 -0
- package/dist/types/client/transport/websocket.d.ts +5 -0
- package/dist/types/client/vue/index.d.ts +234 -0
- package/dist/types/colors.d.ts +32 -0
- package/dist/types/command/Builder.d.ts +47 -0
- package/dist/types/command/Command.d.ts +268 -0
- package/dist/types/config/configMeta.d.ts +53 -0
- package/dist/types/config/configProvenance.d.ts +58 -0
- package/dist/types/config/defaults.d.ts +33 -0
- package/dist/types/config/defineConfig.d.ts +70 -0
- package/dist/types/config/defineEnv.d.ts +170 -0
- package/dist/types/config/envExample.d.ts +23 -0
- package/dist/types/config/envOverride.d.ts +236 -0
- package/dist/types/config/index.d.ts +23 -0
- package/dist/types/config/infra.d.ts +171 -0
- package/dist/types/config/reactivity.d.ts +36 -0
- package/dist/types/config/reservedEnv.d.ts +145 -0
- package/dist/types/config/schema.d.ts +113 -0
- package/dist/types/config/types.d.ts +374 -0
- package/dist/types/config/use.d.ts +80 -0
- package/dist/types/finder/File.d.ts +26 -0
- package/dist/types/finder/FileResult.d.ts +14 -0
- package/dist/types/finder/Finder.d.ts +51 -0
- package/dist/types/finder/Result.d.ts +10 -0
- package/dist/types/index.d.ts +205 -0
- package/dist/types/kernel/BootConfigurationError.d.ts +50 -0
- package/dist/types/kernel/CliKernel.d.ts +289 -0
- package/dist/types/kernel/Kernel.d.ts +1255 -0
- package/dist/types/kernel/Module.d.ts +326 -0
- package/dist/types/kernel/adminPlane/adminCaller.d.ts +105 -0
- package/dist/types/kernel/adminPlane/adminRbac.d.ts +44 -0
- package/dist/types/kernel/adminPlane/catalog.d.ts +122 -0
- package/dist/types/kernel/adminPlane/executeAdmin.d.ts +99 -0
- package/dist/types/kernel/bootReport.d.ts +112 -0
- package/dist/types/kernel/checks/deep.d.ts +122 -0
- package/dist/types/kernel/checks/freshness.d.ts +49 -0
- package/dist/types/kernel/checks/gating.d.ts +134 -0
- package/dist/types/kernel/checks/guards.d.ts +57 -0
- package/dist/types/kernel/checks/lastBoot.d.ts +189 -0
- package/dist/types/kernel/checks/live.d.ts +110 -0
- package/dist/types/kernel/checks/packageDeps.d.ts +44 -0
- package/dist/types/kernel/checks/readiness.d.ts +97 -0
- package/dist/types/kernel/checks/renderReport.d.ts +107 -0
- package/dist/types/kernel/checks/report.d.ts +414 -0
- package/dist/types/kernel/checks/runDoctor.d.ts +361 -0
- package/dist/types/kernel/checks/surface.d.ts +148 -0
- package/dist/types/kernel/checks/walk.d.ts +45 -0
- package/dist/types/kernel/checks/wiring.d.ts +54 -0
- package/dist/types/kernel/commands/AiMcpCommand.d.ts +39 -0
- package/dist/types/kernel/commands/AiSyncCommand.d.ts +28 -0
- package/dist/types/kernel/commands/BuildCommand.d.ts +13 -0
- package/dist/types/kernel/commands/CardCommand.d.ts +34 -0
- package/dist/types/kernel/commands/ClusterCommand.d.ts +29 -0
- package/dist/types/kernel/commands/CompletionCommand.d.ts +17 -0
- package/dist/types/kernel/commands/CreateCommand.d.ts +16 -0
- package/dist/types/kernel/commands/DevCommand.d.ts +40 -0
- package/dist/types/kernel/commands/DoctorCommand.d.ts +55 -0
- package/dist/types/kernel/commands/EnvCommand.d.ts +35 -0
- package/dist/types/kernel/commands/GitHooksCommand.d.ts +27 -0
- package/dist/types/kernel/commands/InspectCommand.d.ts +59 -0
- package/dist/types/kernel/commands/InstallCommand.d.ts +7 -0
- package/dist/types/kernel/commands/MenuCommand.d.ts +58 -0
- package/dist/types/kernel/commands/OutdatedCommand.d.ts +47 -0
- package/dist/types/kernel/commands/ProdCommand.d.ts +29 -0
- package/dist/types/kernel/commands/StatusCommand.d.ts +17 -0
- package/dist/types/kernel/commands/StopCommand.d.ts +17 -0
- package/dist/types/kernel/commands/SymbolsCommand.d.ts +29 -0
- package/dist/types/kernel/commands/runtimeLauncher.d.ts +76 -0
- package/dist/types/kernel/decorators/kernelDecorator.d.ts +76 -0
- package/dist/types/kernel/injector/injector.d.ts +47 -0
- package/dist/types/kernel/injector/serviceOrder.d.ts +29 -0
- package/dist/types/kernel/inspect/adminSubjects.d.ts +169 -0
- package/dist/types/kernel/inspect/docOutline.d.ts +53 -0
- package/dist/types/kernel/lifecycleTags.d.ts +79 -0
- package/dist/types/kernel/moduleConfig.d.ts +35 -0
- package/dist/types/kernel/moduleGating.d.ts +78 -0
- package/dist/types/kernel/readinessRegistry.d.ts +104 -0
- package/dist/types/kernel/resolveModuleEntry.d.ts +46 -0
- package/dist/types/mcp/caller.d.ts +55 -0
- package/dist/types/mcp/guard.d.ts +66 -0
- package/dist/types/mcp/protocol.d.ts +163 -0
- package/dist/types/mcp/server.d.ts +70 -0
- package/dist/types/mcp/tools.d.ts +209 -0
- package/dist/types/oauth/authorizationServer.d.ts +204 -0
- package/dist/types/oauth/protectedResource.d.ts +339 -0
- package/dist/types/realtime/IRealtimeSocket.d.ts +142 -0
- package/dist/types/realtime/IRealtimeTransport.d.ts +50 -0
- package/dist/types/realtime/JsonRpcPeer.d.ts +251 -0
- package/dist/types/realtime/RealtimeEventMap.d.ts +269 -0
- package/dist/types/realtime/channelRate.d.ts +55 -0
- package/dist/types/realtime/platformChannels.d.ts +147 -0
- package/dist/types/runtime/GcScheduler.d.ts +96 -0
- package/dist/types/runtime/RequestContext.d.ts +152 -0
- package/dist/types/runtime/bearer.d.ts +88 -0
- package/dist/types/runtime/engineEnvironment.d.ts +115 -0
- package/dist/types/runtime/loadEnv.d.ts +86 -0
- package/dist/types/runtime/pageFacets.d.ts +104 -0
- package/dist/types/runtime/pageFilters.d.ts +139 -0
- package/dist/types/runtime/pageGuard.d.ts +78 -0
- package/dist/types/runtime/pageQuery.d.ts +138 -0
- package/dist/types/runtime/pageSort.d.ts +86 -0
- package/dist/types/runtime/redact.d.ts +27 -0
- package/dist/types/runtime/withTimeout.d.ts +51 -0
- package/dist/types/service/cluster/ClusterManager.d.ts +112 -0
- package/dist/types/service/cluster/ClusterProbeAggregator.d.ts +68 -0
- package/dist/types/service/cluster/ClusterRelay.d.ts +57 -0
- package/dist/types/service/cluster/clusterMaster.d.ts +40 -0
- package/dist/types/service/cluster/clusterMessage.d.ts +94 -0
- package/dist/types/service/cluster/cpuQuota.d.ts +37 -0
- package/dist/types/service/cluster/instanceProbe.d.ts +82 -0
- package/dist/types/service/cluster/podEnvironment.d.ts +35 -0
- package/dist/types/service/cluster/processProbe.d.ts +53 -0
- package/dist/types/service/cluster/richProcessProbe.d.ts +77 -0
- package/dist/types/service/cluster/topology.d.ts +64 -0
- package/dist/types/service/dev/BootReporter.d.ts +67 -0
- package/dist/types/service/dev/DevSupervisor.d.ts +117 -0
- package/dist/types/service/dev/bootVerdict.d.ts +99 -0
- package/dist/types/service/dev/detachedStart.d.ts +164 -0
- package/dist/types/service/dev/devProcess.d.ts +638 -0
- package/dist/types/service/dev/devProjects.d.ts +121 -0
- package/dist/types/service/dev/devStatusReport.d.ts +141 -0
- package/dist/types/service/dev/devStop.d.ts +57 -0
- package/dist/types/service/fetchService.d.ts +29 -0
- package/dist/types/service/gitService.d.ts +24 -0
- package/dist/types/syslog/Pdu.d.ts +134 -0
- package/dist/types/syslog/Syslog.d.ts +482 -0
- package/dist/types/syslog/drivers/ClusterFileLogDriver.d.ts +40 -0
- package/dist/types/syslog/drivers/FileLogDriver.d.ts +55 -0
- package/dist/types/syslog/drivers/ILogDriver.d.ts +177 -0
- package/dist/types/syslog/drivers/LokiLogDriver.d.ts +44 -0
- package/dist/types/syslog/drivers/MemoryLogDriver.d.ts +20 -0
- package/dist/types/syslog/drivers/OpenSearchLogDriver.d.ts +40 -0
- package/dist/types/syslog/drivers/builtinLogDrivers.d.ts +43 -0
- package/dist/types/syslog/drivers/filterPdus.d.ts +21 -0
- package/dist/types/syslog/drivers/logDriverRegistry.d.ts +100 -0
- package/dist/types/syslog/drivers/opensearchShared.d.ts +11 -0
- package/dist/types/syslog/drivers/pduFlow.d.ts +53 -0
- package/dist/types/syslog/drivers/pduProtocol.d.ts +20 -0
- package/dist/types/syslog/httpFetch.d.ts +48 -0
- package/dist/types/syslog/logColor.d.ts +59 -0
- package/dist/types/syslog/sinks/FileSink.d.ts +78 -0
- package/dist/types/syslog/transports/BatchingHttpTransport.d.ts +59 -0
- package/dist/types/syslog/transports/ConsoleTransport.d.ts +8 -0
- package/dist/types/syslog/transports/FileTransport.d.ts +13 -0
- package/dist/types/syslog/transports/HttpTransport.d.ts +15 -0
- package/dist/types/syslog/transports/LokiTransport.d.ts +45 -0
- package/dist/types/syslog/transports/OpenSearchTransport.d.ts +40 -0
- package/dist/types/syslog/transports/SyslogTransport.d.ts +9 -0
- package/dist/types/syslog/transports/index.d.ts +12 -0
- package/dist/types/testing/index.d.ts +197 -0
- package/dist/types/types/IAdminApi.d.ts +246 -0
- package/dist/types/types/ICliKernel.d.ts +28 -0
- package/dist/types/types/ICommand.d.ts +14 -0
- package/dist/types/types/IContainer.d.ts +35 -0
- package/dist/types/types/IIdempotencyStore.d.ts +159 -0
- package/dist/types/types/IKernel.d.ts +138 -0
- package/dist/types/types/IMcpTool.d.ts +157 -0
- package/dist/types/types/IModule.d.ts +73 -0
- package/dist/types/types/IModuleManifest.d.ts +49 -0
- package/dist/types/types/IPage.d.ts +119 -0
- package/dist/types/types/IService.d.ts +62 -0
- package/dist/types/types/ISyslog.d.ts +58 -0
- package/dist/types/types/ITransport.d.ts +5 -0
- package/dist/types/types/globals.d.ts +47 -0
- package/docs/angular-services.md +318 -0
- package/docs/catalogue.md +184 -0
- package/docs/cli.md +369 -0
- package/docs/client.md +616 -0
- package/docs/debugbar.md +218 -0
- package/docs/environnement.md +308 -0
- package/docs/index.md +388 -0
- package/docs/kernel.md +670 -0
- package/docs/progression.md +228 -0
- package/docs/react-hooks.md +686 -0
- package/docs/request-context.md +507 -0
- package/docs/service.md +590 -0
- package/docs/svelte-reactivite.md +293 -0
- package/docs/syslog.md +848 -0
- package/docs/testing.md +203 -0
- package/docs/vue-composables.md +255 -0
- package/man/nodefony.1 +152 -0
- package/package.json +163 -83
- package/templates/app/agents/AGENTS.md.tpl +967 -0
- package/templates/app/agents/POINTEUR.md.tpl +12 -0
- package/templates/app/base/Dockerfile.tpl +104 -0
- package/templates/app/base/README.md.tpl +314 -0
- package/templates/app/base/dockerignore.tpl +28 -0
- package/templates/app/base/env.ts.tpl +130 -0
- package/templates/app/base/gitattributes.tpl +28 -0
- package/templates/app/base/github/workflows/ci.yml.tpl +91 -0
- package/templates/app/base/gitignore.tpl +46 -0
- package/templates/app/base/gitlab-ci.yml.tpl +42 -0
- package/templates/app/base/index.ts.tpl +69 -0
- package/templates/app/base/nodefony.config.ts.tpl +342 -0
- package/templates/app/base/oxlintrc.json.tpl +127 -0
- package/templates/app/base/package.json.tpl +75 -0
- package/templates/app/base/prettierignore.tpl +24 -0
- package/templates/app/base/prettierrc.json.tpl +12 -0
- package/templates/app/base/rolldown.config.ts.tpl +8 -0
- package/templates/app/base/tests/config.test.ts.tpl +29 -0
- package/templates/app/base/tests/e2e.setup.ts.tpl +181 -0
- package/templates/app/base/tests/e2e.test.ts.tpl +105 -0
- package/templates/app/base/tests/migrations.e2e.test.ts.tpl +579 -0
- package/templates/app/base/tsconfig.json.tpl +47 -0
- package/templates/app/base/vitest.config.ts.tpl +88 -0
- package/templates/app/base/vitest.e2e.config.ts.tpl +39 -0
- package/templates/app/complete/compose.yaml.tpl +328 -0
- package/templates/app/complete/deploy/migrate-job.yaml.tpl +100 -0
- package/templates/app/complete/docker/db/init-nodefony-e2e.sql.tpl +30 -0
- package/templates/app/complete/docker/grafana/provisioning/datasources/loki.yaml.tpl +15 -0
- package/templates/app/complete/env.local.tpl +11 -0
- package/templates/app/complete/env.tpl +53 -0
- package/templates/app/complete/nodefony/entity/User.ts.tpl +69 -0
- package/templates/app/complete/nodefony/security/provisionUsers.ts.tpl +124 -0
- package/templates/app/complete/nodefony/service/AppBannerService.ts.tpl +98 -0
- package/templates/app/complete/nodefony/service/AppInfoService.ts.tpl +85 -0
- package/templates/app/frontend/angular/frontend/src/accent.css.tpl +34 -0
- package/templates/app/frontend/angular/frontend/src/app/app.component.ts.tpl +400 -0
- package/templates/app/frontend/react/frontend/src/App.tsx.tpl +421 -0
- package/templates/app/frontend/react/frontend/src/accent.css.tpl +30 -0
- package/templates/app/frontend/shared/frontend/src/brand.ts.tpl +3 -0
- package/templates/app/frontend/shared/frontend/src/showcase.css.tpl +224 -0
- package/templates/app/frontend/shared/nodefony/controllers/AppController.ts.tpl +45 -0
- package/templates/app/frontend/svelte/frontend/src/App.svelte.tpl +371 -0
- package/templates/app/frontend/svelte/frontend/src/accent.css.tpl +34 -0
- package/templates/app/frontend/vue/frontend/src/App.vue.tpl +367 -0
- package/templates/app/frontend/vue/frontend/src/accent.css.tpl +34 -0
- package/templates/app/home/nodefony/controllers/HomeController.ts.tpl +38 -0
- package/templates/command/nodefony/command/__NAME__.ts.tpl +132 -0
- package/templates/controller/duplex/nodefony/controllers/__NAME__.ts.tpl +188 -0
- package/templates/controller/example/nodefony/controllers/__NAME__.ts.tpl +348 -0
- package/templates/controller/hello/nodefony/controllers/__NAME__.ts.tpl +143 -0
- package/templates/controller/realtime/nodefony/controllers/__NAME__.ts.tpl +153 -0
- package/templates/controller/realtime/tests/__KEBAB__-realtime.test.ts.tpl +79 -0
- package/templates/controller/rest/nodefony/controllers/__NAME__.ts.tpl +159 -0
- package/templates/entity/base/nodefony/entity/__PASCAL__.schema.ts.tpl +31 -0
- package/templates/entity/base/nodefony/entity/__PASCAL__.ts.tpl +68 -0
- package/templates/entity/controller/nodefony/controllers/__PASCAL__Controller.ts.tpl +335 -0
- package/templates/entity/service/nodefony/service/__PASCAL__Service.ts.tpl +126 -0
- package/templates/entity/tests/tests/__KEBAB__.e2e.test.ts.tpl +358 -0
- package/templates/entity/tests/tests/__KEBAB__.test.ts.tpl +87 -0
- package/templates/front/angular/frontend/src/app/app.component.ts.tpl +30 -0
- package/templates/front/base/nodefony/controllers/__NAME__.ts.tpl +60 -0
- package/templates/front/react/frontend/src/App.tsx.tpl +26 -0
- package/templates/front/svelte/frontend/src/App.svelte.tpl +19 -0
- package/templates/front/vue/frontend/src/App.vue.tpl +23 -0
- package/templates/module/ai/AGENTS.md.tpl +71 -0
- package/templates/module/base/README.md.tpl +62 -0
- package/templates/module/base/docs/index.md.tpl +55 -0
- package/templates/module/base/index.ts.tpl +50 -0
- package/templates/module/base/nodefony/config/config.ts.tpl +60 -0
- package/templates/module/base/nodefony/config/defineModuleConfig.ts.tpl +55 -0
- package/templates/module/base/nodefony/src/errors/__PASCAL__Error.ts.tpl +20 -0
- package/templates/module/base/package.json.tpl +53 -0
- package/templates/module/base/rolldown.config.ts.tpl +14 -0
- package/templates/module/base/tests/__KEBAB__.test.ts.tpl +39 -0
- package/templates/module/base/tsconfig.json.tpl +42 -0
- package/templates/module/base/vitest.config.ts.tpl +27 -0
- package/templates/module/packages/CLAUDE.md.tpl +51 -0
- package/templates/module/packages/MEMORY.md.tpl +39 -0
- package/templates/module/packages/tsconfig.declarations.json.tpl +19 -0
- package/templates/module/packages/tsconfig.tests.json.tpl +11 -0
- package/templates/module/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +14 -0
- package/templates/module/service/nodefony/interfaces/index.ts.tpl +1 -0
- package/templates/module/service/nodefony/service/__PASCAL__Service.ts.tpl +116 -0
- package/templates/service/nodefony/interfaces/I__PASCAL__Service.ts.tpl +19 -0
- package/templates/service/nodefony/service/__PASCAL__Service.ts.tpl +136 -0
- package/templates/service/tests/__PASCAL__Service.test.ts.tpl +53 -0
- package/templates/shared/front-entry/angular/frontend/src/main.ts.tpl +17 -0
- package/templates/shared/front-entry/react/frontend/src/main.tsx.tpl +11 -0
- package/templates/shared/front-entry/svelte/frontend/src/main.ts.tpl +13 -0
- package/templates/shared/front-entry/vue/frontend/src/main.ts.tpl +12 -0
- package/templates/shared/front-registrar/nodefony/frontend/register__PASCAL__Entry.ts.tpl +40 -0
- package/templates/shared/front-shell/frontend/index.html.tpl +39 -0
- package/templates/shared/ng-app-tsconfig/frontend/tsconfig.app.json.tpl +18 -0
- package/templates/shared/svelte-shim/frontend/src/env.d.ts.tpl +12 -0
- package/templates/shared/vue-shim/frontend/src/env.d.ts.tpl +15 -0
- package/.yarnclean +0 -45
- package/CHANGELOG.md +0 -406
- package/autoloader.es6 +0 -253
- package/builder.es6 +0 -366
- package/cli/builder/bundles/bundle.js +0 -328
- package/cli/builder/bundles/controller.js +0 -73
- package/cli/builder/bundles/users-bundle/.yarnclean +0 -45
- package/cli/builder/bundles/users-bundle/Command/fixtureTask.js +0 -47
- package/cli/builder/bundles/users-bundle/Command/usersCommand.js +0 -105
- package/cli/builder/bundles/users-bundle/Entity/mongoose/userEntity.js +0 -168
- package/cli/builder/bundles/users-bundle/Entity/sequelize/userEntity.js +0 -231
- package/cli/builder/bundles/users-bundle/Fixtures/users.js +0 -117
- package/cli/builder/bundles/users-bundle/Fixtures/usersFixtures.js +0 -114
- package/cli/builder/bundles/users-bundle/Resources/config/config.js +0 -90
- package/cli/builder/bundles/users-bundle/Resources/config/routing.js +0 -17
- package/cli/builder/bundles/users-bundle/Resources/config/security.js +0 -96
- package/cli/builder/bundles/users-bundle/Resources/config/services.js +0 -7
- package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.dev.config.js +0 -13
- package/cli/builder/bundles/users-bundle/Resources/config/webpack/webpack.prod.config.js +0 -31
- package/cli/builder/bundles/users-bundle/Resources/config/webpack.config.js +0 -146
- package/cli/builder/bundles/users-bundle/Resources/js/users.js +0 -153
- package/cli/builder/bundles/users-bundle/Resources/public/favicon.ico +0 -0
- package/cli/builder/bundles/users-bundle/Resources/public/images/users-logo.png +0 -0
- package/cli/builder/bundles/users-bundle/Resources/scss/awesome/font-awesome.config.js +0 -11
- package/cli/builder/bundles/users-bundle/Resources/scss/custom.scss +0 -23
- package/cli/builder/bundles/users-bundle/Resources/scss/users.scss +0 -59
- package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/login.js +0 -235
- package/cli/builder/bundles/users-bundle/Resources/swagger/openapi/users.js +0 -232
- package/cli/builder/bundles/users-bundle/Resources/translations/login.en_en.yml +0 -14
- package/cli/builder/bundles/users-bundle/Resources/translations/login.fr_fr.yml +0 -14
- package/cli/builder/bundles/users-bundle/Resources/translations/users.en_en.yml +0 -35
- package/cli/builder/bundles/users-bundle/Resources/translations/users.fr_fr.yml +0 -36
- package/cli/builder/bundles/users-bundle/Resources/views/base.html.twig +0 -32
- package/cli/builder/bundles/users-bundle/Resources/views/footer.html.twig +0 -7
- package/cli/builder/bundles/users-bundle/Resources/views/header.html.twig +0 -90
- package/cli/builder/bundles/users-bundle/Resources/views/login/login.html.twig +0 -43
- package/cli/builder/bundles/users-bundle/Resources/views/users/createUser.html.twig +0 -296
- package/cli/builder/bundles/users-bundle/Resources/views/users/readUsers.html.twig +0 -94
- package/cli/builder/bundles/users-bundle/controller/api/graphql/graphqlController.js +0 -56
- package/cli/builder/bundles/users-bundle/controller/api/graphql/userResolver.js +0 -121
- package/cli/builder/bundles/users-bundle/controller/api/graphql/usertype.js +0 -58
- package/cli/builder/bundles/users-bundle/controller/api/openapi/loginApiController.js +0 -210
- package/cli/builder/bundles/users-bundle/controller/api/openapi/restUserController.js +0 -244
- package/cli/builder/bundles/users-bundle/controller/loginController.js +0 -91
- package/cli/builder/bundles/users-bundle/controller/usersController.js +0 -332
- package/cli/builder/bundles/users-bundle/package.json +0 -58
- package/cli/builder/bundles/users-bundle/readme.md +0 -360
- package/cli/builder/bundles/users-bundle/services/usersService.js +0 -411
- package/cli/builder/bundles/users-bundle/src/providers/mongoose/userProvider.js +0 -47
- package/cli/builder/bundles/users-bundle/src/providers/sequelize/userProvider.js +0 -48
- package/cli/builder/bundles/users-bundle/tests/loginTest.js +0 -182
- package/cli/builder/bundles/users-bundle/usersBundle.js +0 -26
- package/cli/builder/microService/microService.js +0 -261
- package/cli/builder/microService/skeletons/.editorconfig +0 -18
- package/cli/builder/microService/skeletons/.env-cmdrc.js +0 -32
- package/cli/builder/microService/skeletons/.jshintrc +0 -37
- package/cli/builder/microService/skeletons/README.md +0 -117
- package/cli/builder/microService/skeletons/bin/bash/hello.sh +0 -5
- package/cli/builder/microService/skeletons/bin/cli +0 -13
- package/cli/builder/microService/skeletons/bin/python/hello.py +0 -20
- package/cli/builder/microService/skeletons/config/config.js +0 -29
- package/cli/builder/microService/skeletons/config/pm2.config.js +0 -72
- package/cli/builder/microService/skeletons/config/webpack/webpack.config.dev.js +0 -8
- package/cli/builder/microService/skeletons/config/webpack/webpack.config.prod.js +0 -25
- package/cli/builder/microService/skeletons/config/webpack.config.js +0 -114
- package/cli/builder/microService/skeletons/package.json +0 -76
- package/cli/builder/microService/skeletons/src/browser/index.css +0 -3
- package/cli/builder/microService/skeletons/src/browser/index.js +0 -16
- package/cli/builder/microService/skeletons/src/browser/socketio.js +0 -46
- package/cli/builder/microService/skeletons/src/cli/cli.js +0 -224
- package/cli/builder/microService/skeletons/src/cli/menu.js +0 -28
- package/cli/builder/microService/skeletons/src/n-api/README.md +0 -1
- package/cli/builder/microService/skeletons/src/n-api/binding.gyp +0 -14
- package/cli/builder/microService/skeletons/src/n-api/hello.cc +0 -14
- package/cli/builder/microService/skeletons/src/n-api/hello.js +0 -23
- package/cli/builder/microService/skeletons/src/n-api/package.json +0 -15
- package/cli/builder/microService/skeletons/src/node/examples/index.js +0 -120
- package/cli/builder/microService/skeletons/src/node/index.js +0 -102
- package/cli/builder/microService/skeletons/src/node/services/markdown/markdown.js +0 -27
- package/cli/builder/microService/skeletons/src/node/services/servers/http.js +0 -45
- package/cli/builder/microService/skeletons/src/node/services/servers/https.js +0 -44
- package/cli/builder/microService/skeletons/src/node/services/socketio/socketio.js +0 -46
- package/cli/builder/microService/skeletons/src/node/services/syscall/syscall.js +0 -111
- package/cli/builder/microService/skeletons/src/node/services/worker/thread.js +0 -59
- package/cli/builder/microService/skeletons/src/node/services/worker/worker.js +0 -60
- package/cli/builder/microService/skeletons/src/templates/base.html +0 -12
- package/cli/builder/microService/skeletons/src/templates/socket.html +0 -23
- package/cli/builder/microService/skeletons/tests/unit/serviceTest.js +0 -30
- package/cli/builder/project/project.js +0 -474
- package/cli/builder/project/skeletons/README.md +0 -778
- package/cli/builder/project/skeletons/bin/dev-deploy.sh +0 -5
- package/cli/builder/project/skeletons/bin/generateCertificates.sh.skeleton +0 -180
- package/cli/builder/project/skeletons/bin/prod-deploy.sh +0 -3
- package/cli/builder/project/skeletons/config/config.js.skeleton +0 -178
- package/cli/builder/project/skeletons/config/openssl/ca/openssl.cnf.skeleton +0 -150
- package/cli/builder/project/skeletons/config/openssl/ca_intermediate/openssl.cnf.skeleton +0 -152
- package/cli/builder/project/skeletons/config/pm2.config.js.skeleton +0 -62
- package/cli/builder/project/skeletons/documentation.html.twig +0 -24
- package/cli/builder/project/skeletons/editorconfig.skeleton +0 -18
- package/cli/builder/project/skeletons/eslintignore.skeleton +0 -15
- package/cli/builder/project/skeletons/eslintrc.js.skeleton +0 -97
- package/cli/builder/project/skeletons/gitignore.skeleton +0 -32
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.37.entity-user.js +0 -137
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.38.entity-session.js +0 -97
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.39.entity-requests.js +0 -115
- package/cli/builder/project/skeletons/migrations/2022.12.25T17.37.40.entity-jwts.js +0 -97
- package/cli/builder/project/skeletons/migrations/migrations.skeleton.js +0 -101
- package/cli/builder/project/skeletons/package.json.twig +0 -71
- package/cli/builder/react/reactBuilder.js +0 -224
- package/cli/builder/react/skeletons/app/Resources/databases/nodefony.db +0 -0
- package/cli/builder/react/skeletons/app/Resources/translations/messages.en_en.yml +0 -5
- package/cli/builder/react/skeletons/app/Resources/translations/messages.fr_fr.yml +0 -5
- package/cli/builder/react/skeletons/app/Resources/views/base.html.twig +0 -33
- package/cli/builder/react/skeletons/app/config/config.js +0 -392
- package/cli/builder/react/skeletons/app/config/routing.js +0 -10
- package/cli/builder/react/skeletons/app/config/security.js +0 -74
- package/cli/builder/react/skeletons/app/controller/appController.js +0 -22
- package/cli/builder/sandbox/sandBoxBuilder.js +0 -610
- package/cli/builder/sandbox/skeletons/Resources/css/entry.css +0 -48
- package/cli/builder/sandbox/skeletons/Resources/js/entry.js +0 -60
- package/cli/builder/sandbox/skeletons/Resources/public/manifest.json +0 -32
- package/cli/builder/sandbox/skeletons/Resources/translations/messages.en_en.yml +0 -5
- package/cli/builder/sandbox/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
- package/cli/builder/sandbox/skeletons/Resources/views/base.html.twig +0 -46
- package/cli/builder/sandbox/skeletons/Resources/views/index.html.twig +0 -34
- package/cli/builder/sandbox/skeletons/bootstrap/custom.scss +0 -27
- package/cli/builder/sandbox/skeletons/bootstrap/entry.scss +0 -60
- package/cli/builder/sandbox/skeletons/workbox/templates/index.html.twig +0 -32
- package/cli/builder/sandbox/skeletons/workbox/workers/service-worker.js +0 -196
- package/cli/builder/skeletons/Resources/public/favicon.ico +0 -0
- package/cli/builder/skeletons/Resources/public/images/app-logo.png +0 -0
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/401.json.twig +0 -24
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/403.json.twig +0 -20
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/404.json.twig +0 -20
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/500.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/base.html.twig +0 -30
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/exception.json.twig +0 -24
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/footer.html.twig +0 -33
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/header.html.twig +0 -6
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.html.twig +0 -6
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/index.json.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.html.twig +0 -125
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/layout.json.twig +0 -5
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.html.twig +0 -1
- package/cli/builder/skeletons/Resources/views/framework-bundle/views/timeout.json.twig +0 -24
- package/cli/builder/skeletons/app/appKernel.js +0 -133
- package/cli/builder/skeletons/binding/binding.cc +0 -26
- package/cli/builder/skeletons/binding/binding.skeleton +0 -8
- package/cli/builder/skeletons/bundle/bundleClass.js +0 -37
- package/cli/builder/skeletons/command/commandClass.js +0 -11
- package/cli/builder/skeletons/command/taskClass.js +0 -20
- package/cli/builder/skeletons/config/config.js +0 -138
- package/cli/builder/skeletons/config/nodefony/elastic-bundle.js +0 -37
- package/cli/builder/skeletons/config/nodefony/framework-bundle.js +0 -22
- package/cli/builder/skeletons/config/nodefony/http-bundle.js +0 -104
- package/cli/builder/skeletons/config/nodefony/mail-bundle.js +0 -44
- package/cli/builder/skeletons/config/nodefony/mongoose-bundle.js +0 -51
- package/cli/builder/skeletons/config/nodefony/monitoring-bundle.js +0 -34
- package/cli/builder/skeletons/config/nodefony/realtime-bundle.js +0 -15
- package/cli/builder/skeletons/config/nodefony/redis-bundle.js +0 -44
- package/cli/builder/skeletons/config/nodefony/security-bundle.js +0 -25
- package/cli/builder/skeletons/config/nodefony/sequelize-bundle.js +0 -156
- package/cli/builder/skeletons/config/routing.js +0 -55
- package/cli/builder/skeletons/config/security.js +0 -102
- package/cli/builder/skeletons/config/services.js +0 -1
- package/cli/builder/skeletons/config/webpack/webpack.dev.config.js +0 -13
- package/cli/builder/skeletons/config/webpack/webpack.prod.config.js +0 -20
- package/cli/builder/skeletons/config/webpack.config.js +0 -148
- package/cli/builder/skeletons/controller/controllerClass.js +0 -75
- package/cli/builder/skeletons/package.json.twig +0 -57
- package/cli/builder/skeletons/unittest/testFile.js +0 -46
- package/cli/builder/vue/skeletons/Resources/public/images/app-logo.png +0 -0
- package/cli/builder/vue/skeletons/Resources/translations/messages.en_en.yml +0 -5
- package/cli/builder/vue/skeletons/Resources/translations/messages.fr_fr.yml +0 -5
- package/cli/builder/vue/skeletons/vue.config.js +0 -129
- package/cli/builder/vue/vueBuilder.js +0 -410
- package/cli/generate/generate.es6 +0 -103
- package/cli/install/install.js +0 -190
- package/cli/sequelize/sequelize.js +0 -94
- package/cli/start.js +0 -702
- package/cli/tools/pm2.es6 +0 -112
- package/cli/tools/tools.es6 +0 -97
- package/cli.es6 +0 -925
- package/container.es6 +0 -272
- package/error.es6 +0 -293
- package/fileClass.es6 +0 -242
- package/finder/file.es6 +0 -33
- package/finder/fileResult.es6 +0 -138
- package/finder/finder2.es6 +0 -275
- package/finder.es6 +0 -427
- package/kernel/annotations/annotations.es6 +0 -286
- package/kernel/api/api.es6 +0 -61
- package/kernel/api/graphqlApi.es6 +0 -107
- package/kernel/api/jsonApi.es6 +0 -177
- package/kernel/api/openApi.es6 +0 -139
- package/kernel/api/schemas/openApiSchema.js +0 -394
- package/kernel/babylon.es6 +0 -162
- package/kernel/bundle.es6 +0 -1200
- package/kernel/cliKernel.es6 +0 -869
- package/kernel/command.es6 +0 -78
- package/kernel/commands/nodefonyCommand.es6 +0 -247
- package/kernel/commands/tasks/bundlesTask.es6 +0 -59
- package/kernel/controllers/controller.es6 +0 -791
- package/kernel/fixture.es6 +0 -19
- package/kernel/injections/injections.es6 +0 -424
- package/kernel/kernel.es6 +0 -1960
- package/kernel/kernelWatcher.es6 +0 -387
- package/kernel/orm/entity.es6 +0 -59
- package/kernel/orm/orm.es6 +0 -139
- package/kernel/reader.es6 +0 -290
- package/kernel/security/encoder.es6 +0 -17
- package/kernel/security/factories/factory.es6 +0 -111
- package/kernel/security/factories/passeportFactory.es6 +0 -61
- package/kernel/security/provider.es6 +0 -58
- package/kernel/security/providers/chainProvider.es6 +0 -99
- package/kernel/security/providers/memoryProvider.es6 +0 -55
- package/kernel/security/providers/providerManager.es6 +0 -67
- package/kernel/security/providers/userEntityProvider.es6 +0 -50
- package/kernel/security/role.es6 +0 -12
- package/kernel/security/secureArea.es6 +0 -431
- package/kernel/security/tokens/token.es6 +0 -171
- package/kernel/security/user.es6 +0 -106
- package/kernel/serviceRealTime.es6 +0 -21
- package/kernel/services/connectionsService.es6 +0 -93
- package/kernel/services/cron/cronService.es6 +0 -123
- package/kernel/task.es6 +0 -80
- package/kernel/templates.es6 +0 -22
- package/kernel/templating/twig.es6 +0 -218
- package/kernel/tests/cliTest.js +0 -59
- package/kernel/tests/containerTest.js +0 -232
- package/kernel/tests/kernelTest.js +0 -39
- package/nodefony.es6 +0 -1084
- package/notificationsCenter.es6 +0 -118
- package/protocol.es6 +0 -86
- package/protocols/bayeux.es6 +0 -174
- package/protocols/jsonRpc/jsonrpc.es6 +0 -56
- package/result.es6 +0 -99
- package/service.es6 +0 -288
- package/syslog/pdu.es6 +0 -141
- package/syslog/syslog.es6 +0 -754
- package/watcher.es6 +0 -113
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { type IMcpConfigDocument } from "./aiMcpReport.js";
|
|
2
|
+
import { type IAgentTarget } from "./agentTargets.js";
|
|
3
|
+
/** Ce que la ligne de commande demande. */
|
|
4
|
+
interface IAiMcpRequest {
|
|
5
|
+
/** `true` si l'on veut seulement la page d'aide. */
|
|
6
|
+
help: boolean;
|
|
7
|
+
/** Origine forcée (`https://localhost:5152`), ou `null` pour la déduire. */
|
|
8
|
+
url: string | null;
|
|
9
|
+
/**
|
|
10
|
+
* Mode authentifié. `null` = ne rien décider — on conserve ce que le fichier
|
|
11
|
+
* porte déjà, pour qu'un rafraîchissement d'URL ne désarme pas la porte.
|
|
12
|
+
*/
|
|
13
|
+
auth: boolean | null;
|
|
14
|
+
/**
|
|
15
|
+
* Agents à déclarer, tels que tapés. `undefined` = rien de demandé — en
|
|
16
|
+
* terminal on PROPOSE, ailleurs on ne touche à la configuration de personne.
|
|
17
|
+
*/
|
|
18
|
+
agent: string | undefined;
|
|
19
|
+
/** Retirer la déclaration au lieu de la poser. */
|
|
20
|
+
remove: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Déclarer dans le foyer de l'utilisateur au lieu du projet.
|
|
23
|
+
*
|
|
24
|
+
* Le défaut est le PROJET : l'URL d'une porte porte un port, et une
|
|
25
|
+
* déclaration globale ne peut désigner qu'une application. Ce drapeau
|
|
26
|
+
* existe pour qui veut délibérément une porte valable partout — un poste
|
|
27
|
+
* qui n'ouvre jamais qu'un seul projet Nodefony, typiquement.
|
|
28
|
+
*/
|
|
29
|
+
global: boolean;
|
|
30
|
+
dryRun: boolean;
|
|
31
|
+
json: boolean;
|
|
32
|
+
cwd: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse l'argv après le mot `ai:mcp`.
|
|
36
|
+
*
|
|
37
|
+
* @param argv - `process.argv` complet
|
|
38
|
+
* @returns la demande, ou le motif du refus
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseAiMcpArgv(argv: string[]): IAiMcpRequest | {
|
|
41
|
+
error: string;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Déduit l'origine du serveur de développement.
|
|
45
|
+
*
|
|
46
|
+
* ⚠️ **Le port en clair est préféré au port TLS**, et ce n'est pas une
|
|
47
|
+
* négligence : en développement le certificat est auto-signé, et un client MCP
|
|
48
|
+
* qui le refuse ne dit pas pourquoi — il rend « serveur injoignable ». L'appel
|
|
49
|
+
* est purement local ; `--url` reste là pour qui veut le TLS.
|
|
50
|
+
*
|
|
51
|
+
* @param cwd - racine du projet
|
|
52
|
+
*/
|
|
53
|
+
export declare function guessOrigin(cwd: string): string;
|
|
54
|
+
/** Ce qu'il faut lancer pour obtenir le jeton, ou `null` s'il n'y a rien à faire. */
|
|
55
|
+
export interface IChainedToken {
|
|
56
|
+
/** Arguments passés au binaire, après `node <bin>`. */
|
|
57
|
+
argv: string[];
|
|
58
|
+
/** Environnement du sous-process — hérité, `NODE_ENV` posé. */
|
|
59
|
+
env: Record<string, string | undefined>;
|
|
60
|
+
/** Répertoire de travail : la racine du PROJET, pas celui de l'appelant. */
|
|
61
|
+
cwd: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Décide s'il faut enchaîner sur `security:token`, et avec quoi.
|
|
65
|
+
*
|
|
66
|
+
* PURE — le `spawn` est de la plomberie, la DÉCISION est ce qui peut être faux.
|
|
67
|
+
* Trois choses ne « suivent » pas toutes seules d'un process à l'autre, et
|
|
68
|
+
* chacune a sa raison d'être ici :
|
|
69
|
+
*
|
|
70
|
+
* - **l'environnement** : un sous-process ne reçoit que ce qu'on lui donne.
|
|
71
|
+
* `NODE_ENV=development` est POSÉ, parce que la porte MCP est servie par un
|
|
72
|
+
* module de développement — sans lui, l'émission échoue sur une audience que
|
|
73
|
+
* l'application ne sert pas, ce qui est exactement l'erreur qu'on veut
|
|
74
|
+
* éviter à l'utilisateur ;
|
|
75
|
+
* - **le répertoire** : le jeton s'écrit dans le `.env.local` du PROJET, pas
|
|
76
|
+
* dans celui d'où la commande a été tapée ;
|
|
77
|
+
* - **le terminal** : sans lui, l'enfant ne pourrait poser aucune question et
|
|
78
|
+
* échouerait en « aucun terminal pour le demander » — d'où le refus
|
|
79
|
+
* d'enchaîner hors TTY plutôt qu'un échec en cascade.
|
|
80
|
+
*
|
|
81
|
+
* @param demande - ce que la ligne de commande a demandé
|
|
82
|
+
* @param contexte - racine du projet, présence d'un terminal, environnement
|
|
83
|
+
* @returns le plan d'exécution, ou `null` si l'on n'enchaîne pas
|
|
84
|
+
*/
|
|
85
|
+
/**
|
|
86
|
+
* Ce qu'on peut dire d'un jeton DÉJÀ posé, sans jamais le montrer.
|
|
87
|
+
*
|
|
88
|
+
* ⚠️ Le jeton part dans un en-tête STATIQUE que rien ne rafraîchit : quand il
|
|
89
|
+
* expire, le symptôme est un `401` sur la porte MCP — un refus qui accuse la
|
|
90
|
+
* configuration, l'audience ou le serveur, jamais l'échéance. Constater
|
|
91
|
+
* l'échéance AVANT de proposer d'en émettre un nouveau transforme une enquête
|
|
92
|
+
* en une ligne de texte.
|
|
93
|
+
*
|
|
94
|
+
* Lecture PURE de la charge utile (elle n'est pas chiffrée, seulement signée) :
|
|
95
|
+
* on ne vérifie pas la signature ici — ce n'est pas une décision d'accès, c'est
|
|
96
|
+
* un renseignement. La porte, elle, vérifie tout.
|
|
97
|
+
*/
|
|
98
|
+
export interface ITokenState {
|
|
99
|
+
/** Secondes restantes ; négatif s'il est expiré, `null` si sans échéance. */
|
|
100
|
+
remainingSeconds: number | null;
|
|
101
|
+
/** Scopes que le jeton porte, tels qu'il les déclare. */
|
|
102
|
+
scopes: string[];
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Lit l'échéance et les scopes d'un JWT, sans le valider ni le divulguer.
|
|
106
|
+
*
|
|
107
|
+
* @param token - le jeton compact (`en-tête.charge.signature`).
|
|
108
|
+
* @param nowSeconds - l'instant de référence, INJECTÉ pour que le banc
|
|
109
|
+
* n'ait pas à attendre le temps qui passe.
|
|
110
|
+
* @returns l'état lisible, ou `null` si ce n'est pas un JWT exploitable.
|
|
111
|
+
*/
|
|
112
|
+
export declare function tokenState(token: string, nowSeconds: number): ITokenState | null;
|
|
113
|
+
/**
|
|
114
|
+
* Phrase d'état d'un jeton, pour un humain devant une question.
|
|
115
|
+
*
|
|
116
|
+
* @param state - ce que {@link tokenState} a lu, ou `null` s'il n'y en a pas.
|
|
117
|
+
* @returns la ligne à afficher.
|
|
118
|
+
*/
|
|
119
|
+
export declare function renderTokenState(state: ITokenState | null): string;
|
|
120
|
+
/**
|
|
121
|
+
* État du jeton posé chez CHAQUE agent détecté — l'échéance et la portée, pas
|
|
122
|
+
* le secret.
|
|
123
|
+
*
|
|
124
|
+
* ⭐ Par agent, et non « le » jeton : rien ne garantit qu'ils portent le même.
|
|
125
|
+
* Un agent servi il y a trois semaines a le sien, périmé, pendant qu'un autre
|
|
126
|
+
* vient d'être rafraîchi — et c'est précisément l'écart qu'on ne voit jamais,
|
|
127
|
+
* parce qu'il se manifeste par un `401` chez un seul outil.
|
|
128
|
+
*
|
|
129
|
+
* @param targets - agents détectés sur ce poste.
|
|
130
|
+
* @param projectRoot - racine du projet, pour résoudre leurs fichiers.
|
|
131
|
+
* @param nowSeconds - instant de référence, injecté pour le banc.
|
|
132
|
+
* @returns pour chaque agent, sa phrase d'état.
|
|
133
|
+
*/
|
|
134
|
+
export declare function agentTokenStates(targets: readonly IAgentTarget[], projectRoot: string, nowSeconds: number): Map<string, string>;
|
|
135
|
+
export declare function planTokenChaining(request: Pick<IAiMcpRequest, "auth" | "dryRun" | "json">, context: {
|
|
136
|
+
projectRoot: string;
|
|
137
|
+
isTTY: boolean;
|
|
138
|
+
env?: Record<string, string | undefined>;
|
|
139
|
+
/**
|
|
140
|
+
* Durée de validité demandée, en minutes. Omise, l'émetteur applique son
|
|
141
|
+
* défaut de configuration.
|
|
142
|
+
*
|
|
143
|
+
* ⭐ Elle existe ici parce que le jeton part dans un en-tête STATIQUE :
|
|
144
|
+
* `.mcp.json` porte une valeur que personne ne rafraîchit. Le défaut de
|
|
145
|
+
* l'émetteur (15 min) est taillé pour un client qui sait renouveler ; ici,
|
|
146
|
+
* il condamne l'utilisateur à réémettre toutes les quinze minutes, en
|
|
147
|
+
* lisant chaque fois un 401 qui accuse le jeton à tort.
|
|
148
|
+
*/
|
|
149
|
+
ttlMinutes?: number;
|
|
150
|
+
/**
|
|
151
|
+
* Scopes demandés à l'émetteur. Omis, la commande d'émission applique son
|
|
152
|
+
* défaut — la lecture seule.
|
|
153
|
+
*/
|
|
154
|
+
scopes?: string;
|
|
155
|
+
}): IChainedToken | null;
|
|
156
|
+
/** Ce qu'il est advenu de la déclaration chez un agent. */
|
|
157
|
+
export interface IDeclarationResult {
|
|
158
|
+
/** L'agent visé. */
|
|
159
|
+
target: IAgentTarget;
|
|
160
|
+
/**
|
|
161
|
+
* La déclaration a-t-elle été écrite DANS le projet ?
|
|
162
|
+
*
|
|
163
|
+
* Ne se déduit pas de `target.scope` — qui dit où l'agent lit ses VARIABLES,
|
|
164
|
+
* pas où sa porte est déclarée. Pour Vibe et Codex, les deux diffèrent : le
|
|
165
|
+
* jeton reste au foyer (un `.env` de projet se commite par accident), la
|
|
166
|
+
* porte va dans le projet (son URL porte un port).
|
|
167
|
+
*/
|
|
168
|
+
inProject?: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* `declare`/`retire` : sa CLI a répondu OK, et le contrôle le CONFIRME quand
|
|
171
|
+
* il est possible. `sans-effet` : elle a répondu OK, mais la porte est encore
|
|
172
|
+
* là (ou toujours absente) — mesuré chez l'un d'eux, et invisible autrement.
|
|
173
|
+
* `fichier-projet` : il lit déjà le `.mcp.json`, il n'y avait rien à lancer.
|
|
174
|
+
* `cli-absente` : l'outil n'est pas installé — la commande est rendue pour le
|
|
175
|
+
* jour où il le sera. `echec` : sa CLI a refusé, et c'est ELLE qui dit pourquoi.
|
|
176
|
+
*/
|
|
177
|
+
state: "declare" | "retire" | "fichier-projet" | "cli-absente" | "echec" | "sans-effet";
|
|
178
|
+
/** La commande, telle qu'on peut la recopier. Vide pour `fichier-projet`. */
|
|
179
|
+
command: string;
|
|
180
|
+
/** Ce que la CLI a écrit quand elle a refusé. */
|
|
181
|
+
detail?: string;
|
|
182
|
+
/**
|
|
183
|
+
* `true` quand une déclaration du même nom, visant une AUTRE porte, était
|
|
184
|
+
* déjà là — donc qu'on vient de l'écraser.
|
|
185
|
+
*
|
|
186
|
+
* Le cas n'a rien de théorique : deux applications Nodefony sur le même poste
|
|
187
|
+
* écoutent deux ports, et chez un agent de portée utilisateur elles se
|
|
188
|
+
* disputent le même nom de serveur. Sans cette ligne, la seconde efface la
|
|
189
|
+
* première en silence.
|
|
190
|
+
*/
|
|
191
|
+
replacesOtherUrl?: boolean;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Déclare (ou retire) la porte MCP chez chaque agent, **par SA propre CLI**.
|
|
195
|
+
*
|
|
196
|
+
* ⭐ La règle qui gouverne cette fonction : **on n'écrit pas le fichier de
|
|
197
|
+
* configuration d'un outil tiers.** Son format lui appartient, il change avec
|
|
198
|
+
* ses versions, et une écriture faite « à la main » se découvre le jour où
|
|
199
|
+
* l'agent ne voit plus rien — sans rien dire. Sa CLI, elle, connaît son format
|
|
200
|
+
* et le suit.
|
|
201
|
+
*
|
|
202
|
+
* La sortie des CLI est CAPTURÉE plutôt qu'héritée, et n'est montrée qu'en cas
|
|
203
|
+
* d'échec : l'une d'elles écrit des avertissements d'interpréteur sur la sortie
|
|
204
|
+
* d'erreur à chaque appel, et les laisser passer ferait lire un succès comme
|
|
205
|
+
* une panne.
|
|
206
|
+
*
|
|
207
|
+
* @param targets - agents à servir
|
|
208
|
+
* @param ctx - l'URL de la porte, et le sens du geste
|
|
209
|
+
* @returns un verdict par agent — jamais une exception : un agent qui refuse
|
|
210
|
+
* n'empêche pas de servir les suivants
|
|
211
|
+
*/
|
|
212
|
+
export declare function declareToAgents(targets: readonly IAgentTarget[], ctx: {
|
|
213
|
+
url: string;
|
|
214
|
+
remove: boolean;
|
|
215
|
+
projectRoot: string;
|
|
216
|
+
/** Écrire dans le foyer de l'utilisateur au lieu du projet. */
|
|
217
|
+
global?: boolean;
|
|
218
|
+
}): Promise<IDeclarationResult[]>;
|
|
219
|
+
/**
|
|
220
|
+
* Rend le compte rendu des déclarations.
|
|
221
|
+
*
|
|
222
|
+
* PURE : c'est le texte que l'utilisateur lit, et il doit pouvoir être éprouvé
|
|
223
|
+
* sans lancer la moindre CLI.
|
|
224
|
+
*
|
|
225
|
+
* @param results - un verdict par agent
|
|
226
|
+
* @param remove - le sens du geste, pour accorder les phrases
|
|
227
|
+
*/
|
|
228
|
+
export declare function renderDeclarations(results: readonly IDeclarationResult[], remove: boolean): string;
|
|
229
|
+
/** Lit le `.mcp.json` du projet, ou `null` s'il est absent ou illisible. */
|
|
230
|
+
export declare function readMcpConfig(file: string): IMcpConfigDocument | null;
|
|
231
|
+
/**
|
|
232
|
+
* Point d'entrée de la commande.
|
|
233
|
+
*
|
|
234
|
+
* @param argv - `process.argv` complet
|
|
235
|
+
* @returns code de sortie sémantique (`OK`, `USAGE`, `NOINPUT` hors projet,
|
|
236
|
+
* `CANTCREAT` si l'écriture échoue)
|
|
237
|
+
*/
|
|
238
|
+
export declare function runAiMcpCommand(argv: string[]): Promise<number>;
|
|
239
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composition PURE de la configuration MCP d'un projet — `.mcp.json`.
|
|
3
|
+
*
|
|
4
|
+
* Séparée de l'écriture pour la même raison que `env`, `card` et `ai:sync` :
|
|
5
|
+
* ce qui décide (que faut-il écrire ? est-ce déjà bon ?) s'éprouve sans toucher
|
|
6
|
+
* au disque, donc se teste vraiment.
|
|
7
|
+
*
|
|
8
|
+
* ## Ce que ce fichier NE fait pas
|
|
9
|
+
*
|
|
10
|
+
* Il ne lance aucun serveur et n'en décrit aucun : le serveur MCP de Nodefony
|
|
11
|
+
* est une **route** de l'application (`POST /nodefony/mcp`), servie par le
|
|
12
|
+
* module `@nodefony/devkit`. Ce fichier ne produit que le **câblage** — le
|
|
13
|
+
* papier qui dit à un agent où taper.
|
|
14
|
+
*/
|
|
15
|
+
/** Nom de la clé sous laquelle notre serveur est déclaré. */
|
|
16
|
+
export declare const MCP_SERVER_KEY = "nodefony";
|
|
17
|
+
/** Fichier de configuration, à la racine du projet. */
|
|
18
|
+
export declare const MCP_CONFIG_FILE = ".mcp.json";
|
|
19
|
+
/**
|
|
20
|
+
* Nom de la variable d'environnement qui porte le jeton de la porte MCP.
|
|
21
|
+
*
|
|
22
|
+
* 🔴 C'est la VARIABLE qui s'écrit dans `.mcp.json`, jamais le jeton : ce
|
|
23
|
+
* fichier est un fichier de projet, suivi par git. Les clients MCP développent
|
|
24
|
+
* `${VAR}` à la lecture, donc le porteur reste dans l'environnement du poste et
|
|
25
|
+
* ne peut pas partir dans un commit.
|
|
26
|
+
*/
|
|
27
|
+
export declare const MCP_TOKEN_ENV = "NF_MCP_TOKEN";
|
|
28
|
+
/** Une entrée de serveur MCP en transport HTTP. */
|
|
29
|
+
export interface IMcpServerEntry {
|
|
30
|
+
/** Transport — seul `http` est produit ici (cf `type` de la spec). */
|
|
31
|
+
type: "http";
|
|
32
|
+
/** URL absolue de l'endpoint. */
|
|
33
|
+
url: string;
|
|
34
|
+
/**
|
|
35
|
+
* En-têtes ajoutés à chaque requête. Posés uniquement en mode authentifié —
|
|
36
|
+
* la spécification MCP impose l'en-tête `Authorization` sur CHAQUE requête,
|
|
37
|
+
* pas seulement à la première.
|
|
38
|
+
*/
|
|
39
|
+
headers?: Record<string, string>;
|
|
40
|
+
}
|
|
41
|
+
/** Le document `.mcp.json` dans son entier. */
|
|
42
|
+
export interface IMcpConfigDocument {
|
|
43
|
+
mcpServers: Record<string, IMcpServerEntry>;
|
|
44
|
+
/** Tout ce que le projet y avait déjà mis est conservé tel quel. */
|
|
45
|
+
[key: string]: unknown;
|
|
46
|
+
}
|
|
47
|
+
/** Ce que la commande a décidé de faire. */
|
|
48
|
+
export type McpConfigAction = "pose" | "remplace" | "inchange";
|
|
49
|
+
/** Résultat de la composition — ce qu'on écrira, et pourquoi. */
|
|
50
|
+
export interface IMcpConfigPlan {
|
|
51
|
+
action: McpConfigAction;
|
|
52
|
+
/** Document complet à écrire (identique à l'existant si `inchange`). */
|
|
53
|
+
document: IMcpConfigDocument;
|
|
54
|
+
/** URL retenue. */
|
|
55
|
+
url: string;
|
|
56
|
+
/** URL précédente, quand on remplace. */
|
|
57
|
+
previousUrl?: string;
|
|
58
|
+
/**
|
|
59
|
+
* `true` quand l'entrée précédente portait un en-tête d'autorisation que
|
|
60
|
+
* celle-ci n'a plus.
|
|
61
|
+
*
|
|
62
|
+
* 🔴 Sans cela, `nodefony ai:mcp` sans `--auth` RETIRAIT l'authentification
|
|
63
|
+
* configurée la veille en annonçant « remplaçait <la même URL> » — un
|
|
64
|
+
* remplacement qui ne remplace rien de visible, et une porte qui redevient
|
|
65
|
+
* anonyme sans que personne l'ait demandé. Une configuration qu'on enlève se
|
|
66
|
+
* NOMME.
|
|
67
|
+
*/
|
|
68
|
+
authRemoved?: boolean;
|
|
69
|
+
/** `true` si l'entrée écrite porte l'en-tête d'autorisation. */
|
|
70
|
+
auth?: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Compose l'URL de l'endpoint MCP.
|
|
74
|
+
*
|
|
75
|
+
* @param origin - origine du serveur (`http://localhost:5151`)
|
|
76
|
+
* @param endpointPath - chemin de l'endpoint, tel que le module le monte
|
|
77
|
+
*/
|
|
78
|
+
export declare function buildMcpUrl(origin: string, endpointPath: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Décide ce qu'il faut écrire dans `.mcp.json`.
|
|
81
|
+
*
|
|
82
|
+
* ⭐ **Le document existant est PRÉSERVÉ**, et pas seulement par politesse :
|
|
83
|
+
* un projet y déclare ses autres serveurs MCP, et une commande de câblage qui
|
|
84
|
+
* les emporterait serait une commande qu'on n'ose plus lancer. Seule la clé
|
|
85
|
+
* `nodefony` est posée ou mise à jour.
|
|
86
|
+
*
|
|
87
|
+
* L'idempotence est au sens FORT : une URL déjà correcte rend `inchange`, donc
|
|
88
|
+
* l'appelant n'écrit pas — l'horodatage du fichier ne bouge pas, et l'arbre
|
|
89
|
+
* reste propre.
|
|
90
|
+
*
|
|
91
|
+
* @param existing - document déjà présent, ou `null`
|
|
92
|
+
* @param url - URL de l'endpoint à déclarer
|
|
93
|
+
*/
|
|
94
|
+
export declare function planMcpConfig(existing: IMcpConfigDocument | null, url: string, options?: {
|
|
95
|
+
auth?: boolean;
|
|
96
|
+
}): IMcpConfigPlan;
|
|
97
|
+
/**
|
|
98
|
+
* URL des métadonnées de la porte protégée (RFC 9728) : le chemin bien connu
|
|
99
|
+
* s'INSÈRE entre l'hôte et le chemin de la ressource, il ne s'y ajoute pas.
|
|
100
|
+
*
|
|
101
|
+
* @param url - URL de l'endpoint MCP
|
|
102
|
+
* @returns l'URL du document de métadonnées
|
|
103
|
+
*/
|
|
104
|
+
export declare function metadataUrlOf(url: string): string;
|
|
105
|
+
/**
|
|
106
|
+
* Rend le plan pour un lecteur humain.
|
|
107
|
+
*
|
|
108
|
+
* Dit surtout **ce qui reste à faire** : écrire le fichier ne branche rien tant
|
|
109
|
+
* que l'application ne tourne pas, et un agent déjà lancé ne relit pas sa
|
|
110
|
+
* configuration. Taire ces deux conditions produirait le pire des retours — un
|
|
111
|
+
* succès annoncé, suivi d'un outil introuvable.
|
|
112
|
+
*/
|
|
113
|
+
export declare function renderMcpPlan(plan: IMcpConfigPlan, file: string, dryRun: boolean): string;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { IAiSyncPlan, IDiscoveredSkill } from "./aiSyncReport.js";
|
|
2
|
+
/**
|
|
3
|
+
* La première phrase de la `description` d'un `SKILL.md`.
|
|
4
|
+
*
|
|
5
|
+
* Volontairement écrit à la main plutôt que par un analyseur YAML : le cœur ne
|
|
6
|
+
* dépend d'aucune bibliothèque pour lire deux champs, et un `SKILL.md` non
|
|
7
|
+
* conforme doit être IGNORÉ, pas faire échouer la commande — la synchronisation
|
|
8
|
+
* ne juge pas la qualité des skills des autres.
|
|
9
|
+
*
|
|
10
|
+
* @param src - contenu complet du fichier.
|
|
11
|
+
* @returns `{ name, summary }`, ou `null` si le frontmatter est inexploitable.
|
|
12
|
+
*/
|
|
13
|
+
export declare function readSkillHeader(src: string): {
|
|
14
|
+
name: string;
|
|
15
|
+
summary: string;
|
|
16
|
+
} | null;
|
|
17
|
+
/**
|
|
18
|
+
* Découvre les skills livrés par les paquets installés.
|
|
19
|
+
*
|
|
20
|
+
* Un skill est un DOSSIER portant un `SKILL.md` — c'est la spécification, et
|
|
21
|
+
* c'est le seul critère retenu : ni le nom du paquet, ni un champ maison.
|
|
22
|
+
*
|
|
23
|
+
* @param projectRoot - racine de l'application.
|
|
24
|
+
* @returns les skills trouvés, dans l'ordre de découverte.
|
|
25
|
+
*/
|
|
26
|
+
export declare function discoverSkills(projectRoot: string): IDiscoveredSkill[];
|
|
27
|
+
/**
|
|
28
|
+
* Ce que le dossier de découverte porte déjà : nom du skill → contenu.
|
|
29
|
+
*
|
|
30
|
+
* @param projectRoot - racine de l'application.
|
|
31
|
+
* @returns la table, vide si le dossier n'existe pas encore.
|
|
32
|
+
*/
|
|
33
|
+
export declare function readExistingPointers(projectRoot: string): Record<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Analyse les arguments de `ai:sync`.
|
|
36
|
+
*
|
|
37
|
+
* @param argv - `process.argv` complet.
|
|
38
|
+
* @returns les options, ou une erreur d'usage.
|
|
39
|
+
*/
|
|
40
|
+
export declare function parseAiSyncArgv(argv: string[]): {
|
|
41
|
+
cwd: string;
|
|
42
|
+
json: boolean;
|
|
43
|
+
dryRun: boolean;
|
|
44
|
+
help: boolean;
|
|
45
|
+
} | {
|
|
46
|
+
error: string;
|
|
47
|
+
};
|
|
48
|
+
export declare function syncSkillPointers(projectRoot: string, dryRun?: boolean): IAiSyncPlan;
|
|
49
|
+
/**
|
|
50
|
+
* Commande `nodefony ai:sync` — pose dans le projet les pointeurs vers les
|
|
51
|
+
* skills livrés par les paquets installés.
|
|
52
|
+
*
|
|
53
|
+
* Standalone (0 boot), et il le FAUT : la commande doit répondre dans un
|
|
54
|
+
* terminal qui n'a pas posé `NODE_ENV`. Portée par un module `policy: "dev"`,
|
|
55
|
+
* elle n'aurait tout simplement pas existé là — c'est exactement le défaut qui a
|
|
56
|
+
* fait remonter `card` dans le cœur, et il n'y a aucune raison de le repayer.
|
|
57
|
+
*
|
|
58
|
+
* ⚠️ Aucun `postinstall` ne l'appelle, volontairement : `--ignore-scripts` est
|
|
59
|
+
* courant (intégration continue, politiques d'entreprise), les scripts
|
|
60
|
+
* d'installation sont un vecteur d'attaque connu de l'écosystème npm, et écrire
|
|
61
|
+
* dans un dossier VERSIONNÉ à chaque installation produirait des différences
|
|
62
|
+
* surprises. Le scaffold pose les pointeurs à la création ; cette commande les
|
|
63
|
+
* remet à jour quand on le demande.
|
|
64
|
+
*
|
|
65
|
+
* @param argv - `process.argv` complet.
|
|
66
|
+
* @returns exit code sémantique (`OK`, `USAGE`, `NOINPUT` hors projet).
|
|
67
|
+
*/
|
|
68
|
+
export declare function runAiSyncCommand(argv: string[]): number;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composition PURE de la synchronisation des skills d'agent.
|
|
3
|
+
*
|
|
4
|
+
* Reçoit un état déjà lu (les skills découverts, ce que le projet porte déjà) et
|
|
5
|
+
* conclut : que poser, que remplacer, que laisser. Aucune lecture de disque,
|
|
6
|
+
* aucune écriture — c'est ce qui la rend éprouvable sans projet ni paquet
|
|
7
|
+
* installé, et ce qui garantit qu'elle ne peut rien inventer.
|
|
8
|
+
*
|
|
9
|
+
* La lecture et l'écriture vivent dans `aiSync.ts` ; la même séparation que
|
|
10
|
+
* `cardReport.ts` / `card.ts` et `envReport.ts` / `env.ts`.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Un skill découvert dans un paquet installé.
|
|
14
|
+
*/
|
|
15
|
+
export interface IDiscoveredSkill {
|
|
16
|
+
/** Nom du skill — identique au dossier qui le contient (contrainte de la spec). */
|
|
17
|
+
name: string;
|
|
18
|
+
/** Paquet qui le livre, tel qu'il s'écrit dans un `import` (`@nodefony/devkit`). */
|
|
19
|
+
packageName: string;
|
|
20
|
+
/** Première phrase de sa `description`, pour l'afficher sans charger le corps. */
|
|
21
|
+
summary: string;
|
|
22
|
+
/**
|
|
23
|
+
* Chemin du `SKILL.md` source, RELATIF à la racine du projet et écrit en `/`.
|
|
24
|
+
*
|
|
25
|
+
* Il VOYAGE (il est écrit dans un fichier que d'autres outils liront) : il
|
|
26
|
+
* s'écrit donc en séparateurs POSIX, jamais avec ceux de la plateforme.
|
|
27
|
+
*/
|
|
28
|
+
source: string;
|
|
29
|
+
}
|
|
30
|
+
/** Ce qu'il faut faire d'un skill, une fois comparé à ce que le projet porte. */
|
|
31
|
+
export type SkillAction = "pose" | "remplace" | "inchange";
|
|
32
|
+
/**
|
|
33
|
+
* Le geste décidé pour un skill, prêt à être exécuté ou affiché.
|
|
34
|
+
*/
|
|
35
|
+
export interface IPlannedSkill {
|
|
36
|
+
name: string;
|
|
37
|
+
packageName: string;
|
|
38
|
+
action: SkillAction;
|
|
39
|
+
/** Chemin du pointeur à écrire, relatif au projet, en `/`. */
|
|
40
|
+
target: string;
|
|
41
|
+
/**
|
|
42
|
+
* Chemin du MIROIR Claude Code (`CLAUDE_SKILLS_DIR`), même contenu.
|
|
43
|
+
*
|
|
44
|
+
* L'idempotence du miroir se juge sur SON fichier au moment d'écrire (pas
|
|
45
|
+
* sur `action`, qui ne parle que de la racine canonique) : un miroir absent
|
|
46
|
+
* sous un canonique inchangé doit quand même être posé.
|
|
47
|
+
*/
|
|
48
|
+
mirrorTarget: string;
|
|
49
|
+
/** Contenu exact du pointeur — c'est lui qu'on écrit, tel quel. */
|
|
50
|
+
content: string;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Le plan complet, tel qu'il s'affiche et tel qu'il s'exécute.
|
|
54
|
+
*/
|
|
55
|
+
export interface IAiSyncPlan {
|
|
56
|
+
/** Dossier de découverte visé, relatif au projet, en `/`. */
|
|
57
|
+
directory: string;
|
|
58
|
+
skills: IPlannedSkill[];
|
|
59
|
+
/** Pointeurs présents dans le dossier que plus aucun paquet ne livre. */
|
|
60
|
+
orphelins: string[];
|
|
61
|
+
/**
|
|
62
|
+
* Fichiers que la synchronisation a REFUSÉ d'écraser — un `SKILL.md` déjà
|
|
63
|
+
* présent qui n'est pas un pointeur, donc écrit par quelqu'un.
|
|
64
|
+
*
|
|
65
|
+
* 🔴 Ils sont rendus pour être DITS. Un fichier préservé en silence laisse
|
|
66
|
+
* croire que le skill a été synchronisé alors qu'il ne l'est pas ; et
|
|
67
|
+
* l'écraser sans le dire détruit du travail — vécu : 385 lignes remplacées
|
|
68
|
+
* par un renvoi de neuf lignes, sans un mot.
|
|
69
|
+
*/
|
|
70
|
+
preserves: string[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Le dossier de découverte INTEROPÉRABLE.
|
|
74
|
+
*
|
|
75
|
+
* La spécification Agent Skills ne mandate AUCUN emplacement — elle ne définit
|
|
76
|
+
* que ce qu'un skill contient. La convention qui a émergé pour le partage entre
|
|
77
|
+
* clients est `.agents/skills/` : c'est la racine CANONIQUE, celle où vivent
|
|
78
|
+
* aussi la détection d'orphelins et l'inventaire.
|
|
79
|
+
*
|
|
80
|
+
* ⭐ **« La convention qui a émergé » n'est pas un pari : deux clients la
|
|
81
|
+
* lisent, et l'un des deux la PRÉFÈRE à son propre dossier.** Une convention
|
|
82
|
+
* qu'on affirme sans nommer qui l'honore est une croyance ; celle-ci est
|
|
83
|
+
* constatée au source de chaque client :
|
|
84
|
+
*
|
|
85
|
+
* | client | lit `.agents/skills` | preuve |
|
|
86
|
+
* | ------ | -------------------- | ----------------------------------------------- |
|
|
87
|
+
* | vibe | oui | `vibe/core/paths/_local_config_files.py` (`_AGENTS_SKILLS_SUBDIR`) |
|
|
88
|
+
* | gemini | oui, **en priorité** | `@google/gemini-cli` `bundle/docs/cli/skills.md` |
|
|
89
|
+
* | claude | non | mesuré — d'où {@link CLAUDE_SKILLS_DIR} |
|
|
90
|
+
* | codex | pas de skills | rien dans son paquet (0.149.0) |
|
|
91
|
+
*
|
|
92
|
+
* Gemini est explicite sur la préférence : à niveau égal, « the `.agents/skills/`
|
|
93
|
+
* alias takes precedence over the `.gemini/skills/` directory ». Poser en plus
|
|
94
|
+
* un `skill_paths` dans la configuration d'un agent serait donc une SECONDE
|
|
95
|
+
* source pour la même règle — la racine canonique suffit, et c'est tout
|
|
96
|
+
* l'intérêt d'une convention.
|
|
97
|
+
*/
|
|
98
|
+
export declare const SKILLS_DIR = ".agents/skills";
|
|
99
|
+
/**
|
|
100
|
+
* Le MIROIR pour Claude Code — parce que le pari « c'est aux clients d'ajouter
|
|
101
|
+
* `.agents/skills/` » a été MESURÉ perdu.
|
|
102
|
+
*
|
|
103
|
+
* Constaté sur une application générée (claude-code 2.1.238, mode headless) :
|
|
104
|
+
* les cinq pointeurs étaient posés dans `.agents/skills/`, et le champ `skills`
|
|
105
|
+
* de la session n'en listait AUCUN ; les mêmes fichiers recopiés dans
|
|
106
|
+
* `.claude/skills/` y apparaissaient tous. Un skill que le client dominant ne
|
|
107
|
+
* charge jamais n'existe pas — même motif que la porte MCP câblée sans
|
|
108
|
+
* `--mcp-config`. Le contenu reste rendu par `renderPointer`, en un seul
|
|
109
|
+
* exemplaire : deux racines, un écrivain, aucune divergence possible.
|
|
110
|
+
*
|
|
111
|
+
* ⚠️ Cette racine appartient d'abord à l'UTILISATEUR (ses propres skills y
|
|
112
|
+
* vivent) : la synchronisation n'y écrit QUE les pointeurs qu'elle livre, n'y
|
|
113
|
+
* détecte aucun orphelin et n'y supprime jamais rien.
|
|
114
|
+
*/
|
|
115
|
+
export declare const CLAUDE_SKILLS_DIR = ".claude/skills";
|
|
116
|
+
/**
|
|
117
|
+
* Le pointeur écrit dans le projet.
|
|
118
|
+
*
|
|
119
|
+
* Il ne COPIE pas le skill : il le désigne. C'est ce qui fait que le contenu se
|
|
120
|
+
* met à jour par `npm update` sans qu'aucun fichier du projet ne soit réécrit —
|
|
121
|
+
* une copie, elle, mentirait six mois plus tard. Le corps reste court à dessein :
|
|
122
|
+
* l'agent charge d'abord les métadonnées de tous les skills, et seulement
|
|
123
|
+
* ensuite le corps de celui qu'il active.
|
|
124
|
+
*
|
|
125
|
+
* @param skill - le skill découvert.
|
|
126
|
+
* @returns le contenu complet du `SKILL.md` pointeur.
|
|
127
|
+
*/
|
|
128
|
+
export declare function renderPointer(skill: IDiscoveredSkill): string;
|
|
129
|
+
/**
|
|
130
|
+
* Décide, pour chaque skill découvert, s'il faut poser, remplacer ou ne rien
|
|
131
|
+
* faire — et relève les pointeurs devenus orphelins.
|
|
132
|
+
*
|
|
133
|
+
* Un pointeur déjà identique n'est PAS réécrit : sans cette comparaison, chaque
|
|
134
|
+
* passage salirait l'arbre git de l'utilisateur avec des fichiers au contenu
|
|
135
|
+
* inchangé, et `ai:sync` deviendrait une commande qu'on hésite à lancer.
|
|
136
|
+
*
|
|
137
|
+
* @param decouverts - les skills livrés par les paquets installés.
|
|
138
|
+
* @param existing - ce que le dossier de découverte porte déjà : nom → contenu.
|
|
139
|
+
* @returns le plan, trié par nom pour que deux exécutions se comparent.
|
|
140
|
+
*/
|
|
141
|
+
export declare function planSync(decouverts: IDiscoveredSkill[], existing: Record<string, string>): IAiSyncPlan;
|
|
142
|
+
/**
|
|
143
|
+
* Rend le plan pour un humain.
|
|
144
|
+
*
|
|
145
|
+
* @param plan - le plan calculé.
|
|
146
|
+
* @param applique - `false` quand rien n'a été écrit (`--dry-run`).
|
|
147
|
+
* @returns le texte à écrire sur la sortie standard.
|
|
148
|
+
*/
|
|
149
|
+
export declare function renderPlan(plan: IAiSyncPlan, applique: boolean): string;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type ICardInput } from "./cardReport.js";
|
|
2
|
+
/** Ce que la ligne de commande demande. */
|
|
3
|
+
interface ICardRequest {
|
|
4
|
+
json: boolean;
|
|
5
|
+
/** Racine de recherche (défaut : le cwd). */
|
|
6
|
+
cwd: string;
|
|
7
|
+
/** `true` si l'on veut seulement la page d'aide. */
|
|
8
|
+
help: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Parse l'argv après le mot `card` (ou son alias).
|
|
12
|
+
*
|
|
13
|
+
* @param argv - `process.argv` complet.
|
|
14
|
+
* @returns la demande, ou le motif du refus.
|
|
15
|
+
*/
|
|
16
|
+
export declare function parseCardArgv(argv: string[]): ICardRequest | {
|
|
17
|
+
error: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Compose l'état de la carte à FROID : ce que des fichiers suffisent à établir.
|
|
21
|
+
*
|
|
22
|
+
* Que des lectures, aucune exécution : le `package.json` de l'application (nom,
|
|
23
|
+
* version, briques déclarées), celui du framework installé (sa version), puis le
|
|
24
|
+
* DISQUE — `node_modules/@nodefony/*` et `modules/*`, réunis aux déclarations.
|
|
25
|
+
*
|
|
26
|
+
* Ce sont des FAITS, là où lire les `use()` de `nodefony.config.ts` à
|
|
27
|
+
* l'expression régulière produirait une liste fausse dès qu'un appel est
|
|
28
|
+
* conditionnel, sans le dire. Ils restent des modules INSTALLÉS : ce qui sera
|
|
29
|
+
* réellement chargé dépend du gating `policy`/`when`, qui n'a pas encore eu lieu
|
|
30
|
+
* — d'où `source: "static"`, que le rendu annonce.
|
|
31
|
+
*
|
|
32
|
+
* @param projectRoot - racine de l'application (cf `findProjectRoot`).
|
|
33
|
+
* @param fallbackVersion - version du framework à afficher si l'application ne
|
|
34
|
+
* l'a pas encore installé (celle du CLI qui répond).
|
|
35
|
+
* @returns l'état à passer à `buildCard`, ou `null` si le `package.json` de
|
|
36
|
+
* l'application est illisible.
|
|
37
|
+
*/
|
|
38
|
+
export declare function readColdCardInput(projectRoot: string, fallbackVersion: string): ICardInput | null;
|
|
39
|
+
/**
|
|
40
|
+
* Commande `nodefony card` — orchestre : résout le projet, lit l'état statique,
|
|
41
|
+
* délègue la composition au module pur, rend.
|
|
42
|
+
*
|
|
43
|
+
* @param argv - `process.argv` complet.
|
|
44
|
+
* @param fallbackVersion - version du CLI courant, affichée si l'application n'a
|
|
45
|
+
* pas (encore) `nodefony` dans ses `node_modules`.
|
|
46
|
+
* @returns exit code sémantique (`OK`, `USAGE`, `NOINPUT` hors projet).
|
|
47
|
+
*/
|
|
48
|
+
export declare function runCardCommand(argv: string[], fallbackVersion: string): number;
|
|
49
|
+
export {};
|