@aiwg/cli 0.0.0-bootstrap.0 → 2026.7.17
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 +21 -1
- package/bin/aiwg.mjs +349 -0
- package/dist/src/a2a/agent-card.js +145 -0
- package/dist/src/a2a/client.js +411 -0
- package/dist/src/a2a/hitl-cli.js +171 -0
- package/dist/src/a2a/hitl-driver.js +370 -0
- package/dist/src/a2a/hitl.js +181 -0
- package/dist/src/a2a/http.js +193 -0
- package/dist/src/a2a/jcs.js +128 -0
- package/dist/src/a2a/jws.js +187 -0
- package/dist/src/a2a/types.js +24 -0
- package/dist/src/a2a/webhook.js +240 -0
- package/dist/src/activity-log/cli.js +348 -0
- package/dist/src/activity-log/parser.js +81 -0
- package/dist/src/activity-log/types.js +50 -0
- package/dist/src/agents/agent-deployer.js +367 -0
- package/dist/src/agents/agent-packager.js +271 -0
- package/dist/src/agents/agent-validator.js +271 -0
- package/dist/src/agents/grounding/knowledge-base.js +161 -0
- package/dist/src/agents/grounding/types.js +12 -0
- package/dist/src/agents/index.js +10 -0
- package/dist/src/agents/packaged-agent-inventory.js +75 -0
- package/dist/src/agents/types.js +7 -0
- package/dist/src/api/index.d.ts +10 -0
- package/dist/src/api/index.js +10 -0
- package/dist/src/artifacts/address-parser.js +73 -0
- package/dist/src/artifacts/audit/cli.js +183 -0
- package/dist/src/artifacts/audit/drift.js +122 -0
- package/dist/src/artifacts/audit/types.js +12 -0
- package/dist/src/artifacts/backends/graphology-backend.js +160 -0
- package/dist/src/artifacts/backends/json-backend.js +129 -0
- package/dist/src/artifacts/backends/sqlite-backend.js +199 -0
- package/dist/src/artifacts/browser-export.js +622 -0
- package/dist/src/artifacts/capability-resolver.js +94 -0
- package/dist/src/artifacts/checksum-manifest.js +91 -0
- package/dist/src/artifacts/citation-parser.js +162 -0
- package/dist/src/artifacts/cli.js +1462 -0
- package/dist/src/artifacts/corpus-tools/citation-densify.js +311 -0
- package/dist/src/artifacts/corpus-tools/cli.js +393 -0
- package/dist/src/artifacts/corpus-tools/corpus-graph.js +225 -0
- package/dist/src/artifacts/corpus-tools/curator.js +186 -0
- package/dist/src/artifacts/corpus-tools/discovery-log.js +70 -0
- package/dist/src/artifacts/corpus-tools/funder-network.js +141 -0
- package/dist/src/artifacts/corpus-tools/induction-audit.js +233 -0
- package/dist/src/artifacts/corpus-tools/integrity-scan.js +202 -0
- package/dist/src/artifacts/corpus-tools/profile-communities.js +166 -0
- package/dist/src/artifacts/corpus-tools/profile-edges.js +72 -0
- package/dist/src/artifacts/corpus-tools/profile-embed.js +113 -0
- package/dist/src/artifacts/corpus-tools/profile-generate-fm.js +167 -0
- package/dist/src/artifacts/corpus-tools/profile-generate.js +181 -0
- package/dist/src/artifacts/corpus-tools/profile-metrics.js +98 -0
- package/dist/src/artifacts/corpus-tools/profile-status.js +86 -0
- package/dist/src/artifacts/corpus-tools/profile-temporal.js +139 -0
- package/dist/src/artifacts/corpus-tools/radar-init.js +93 -0
- package/dist/src/artifacts/corpus-tools/radar-report.js +118 -0
- package/dist/src/artifacts/corpus-tools/radar-shared.js +189 -0
- package/dist/src/artifacts/corpus-tools/radar-status.js +68 -0
- package/dist/src/artifacts/corpus-tools/sidecar-lint.js +233 -0
- package/dist/src/artifacts/corpus-tools/sidecar-repair.js +277 -0
- package/dist/src/artifacts/corpus-tools/snapshot.js +591 -0
- package/dist/src/artifacts/corpus-tools/source-types.js +164 -0
- package/dist/src/artifacts/corpus-tools/vision-extract.js +243 -0
- package/dist/src/artifacts/corpus-views/build.js +126 -0
- package/dist/src/artifacts/corpus-views/corpus-config.js +124 -0
- package/dist/src/artifacts/corpus-views/ref-parser.js +437 -0
- package/dist/src/artifacts/corpus-views/renderers.js +353 -0
- package/dist/src/artifacts/corpus-views/taxonomies.js +131 -0
- package/dist/src/artifacts/dep-graph.js +173 -0
- package/dist/src/artifacts/discover-facets.js +375 -0
- package/dist/src/artifacts/embedding-index.js +354 -0
- package/dist/src/artifacts/enrichment/cli.js +240 -0
- package/dist/src/artifacts/enrichment/prompt.js +47 -0
- package/dist/src/artifacts/enrichment/store.js +90 -0
- package/dist/src/artifacts/enrichment/types.js +12 -0
- package/dist/src/artifacts/fortemi-core-query-adapter.js +475 -0
- package/dist/src/artifacts/fortemi-core-sync.js +251 -0
- package/dist/src/artifacts/fortemi-shard-export.js +44 -0
- package/dist/src/artifacts/fulltext.js +108 -0
- package/dist/src/artifacts/graph-backend.js +51 -0
- package/dist/src/artifacts/graph-query.js +247 -0
- package/dist/src/artifacts/hybrid-query.js +225 -0
- package/dist/src/artifacts/index-builder.js +1089 -0
- package/dist/src/artifacts/index-reader.js +112 -0
- package/dist/src/artifacts/index-status.js +193 -0
- package/dist/src/artifacts/legacy-index-migration.js +169 -0
- package/dist/src/artifacts/move.js +154 -0
- package/dist/src/artifacts/operational-state.js +239 -0
- package/dist/src/artifacts/prebuilt-build-lock.js +49 -0
- package/dist/src/artifacts/query-engine.js +1955 -0
- package/dist/src/artifacts/source-graph.js +529 -0
- package/dist/src/artifacts/stats.js +169 -0
- package/dist/src/artifacts/types.js +606 -0
- package/dist/src/artifacts/views/cli.js +293 -0
- package/dist/src/artifacts/views/definition.js +170 -0
- package/dist/src/artifacts/views/store.js +149 -0
- package/dist/src/artifacts/views/types.js +8 -0
- package/dist/src/artifacts/watcher.js +255 -0
- package/dist/src/catalog/builtin-models.json +636 -0
- package/dist/src/catalog/cli.js +228 -0
- package/dist/src/catalog/cli.mjs +289 -0
- package/dist/src/catalog/index.js +15 -0
- package/dist/src/catalog/loader.js +217 -0
- package/dist/src/catalog/loader.mjs +251 -0
- package/dist/src/catalog/sources.json +41 -0
- package/dist/src/catalog/types.js +8 -0
- package/dist/src/channel/manager.mjs +504 -0
- package/dist/src/cli/agent-spawn.js +178 -0
- package/dist/src/cli/cli-extension-loader.js +245 -0
- package/dist/src/cli/command-log.js +275 -0
- package/dist/src/cli/config-loader.js +232 -0
- package/dist/src/cli/env.js +82 -0
- package/dist/src/cli/errors.js +150 -0
- package/dist/src/cli/find-package-root.js +40 -0
- package/dist/src/cli/git-hooks.js +250 -0
- package/dist/src/cli/handlers/agentcard.js +206 -0
- package/dist/src/cli/handlers/artifacts.js +76 -0
- package/dist/src/cli/handlers/best-practices-audit.js +280 -0
- package/dist/src/cli/handlers/cockpit.js +137 -0
- package/dist/src/cli/handlers/command-log.js +37 -0
- package/dist/src/cli/handlers/daemon.js +59 -0
- package/dist/src/cli/handlers/diagnose.js +300 -0
- package/dist/src/cli/handlers/execution-mode.js +105 -0
- package/dist/src/cli/handlers/feedback.js +341 -0
- package/dist/src/cli/handlers/help.js +147 -0
- package/dist/src/cli/handlers/index.js +302 -0
- package/dist/src/cli/handlers/init.js +179 -0
- package/dist/src/cli/handlers/install.js +129 -0
- package/dist/src/cli/handlers/issues.js +46 -0
- package/dist/src/cli/handlers/lint.js +42 -0
- package/dist/src/cli/handlers/local-executor.js +315 -0
- package/dist/src/cli/handlers/marketplace.js +168 -0
- package/dist/src/cli/handlers/mc.js +1010 -0
- package/dist/src/cli/handlers/models.js +352 -0
- package/dist/src/cli/handlers/packages.js +155 -0
- package/dist/src/cli/handlers/ralph-launcher.js +717 -0
- package/dist/src/cli/handlers/ralph.js +575 -0
- package/dist/src/cli/handlers/refresh.js +432 -0
- package/dist/src/cli/handlers/regenerate.js +336 -0
- package/dist/src/cli/handlers/repo-access.js +109 -0
- package/dist/src/cli/handlers/run.js +165 -0
- package/dist/src/cli/handlers/runtime-info.js +301 -0
- package/dist/src/cli/handlers/sandbox.js +197 -0
- package/dist/src/cli/handlers/scaffolding.js +149 -0
- package/dist/src/cli/handlers/script-runner.js +121 -0
- package/dist/src/cli/handlers/sdlc-accelerate.js +148 -0
- package/dist/src/cli/handlers/serve.js +1835 -0
- package/dist/src/cli/handlers/session.js +348 -0
- package/dist/src/cli/handlers/setup.js +440 -0
- package/dist/src/cli/handlers/skill-lint.js +367 -0
- package/dist/src/cli/handlers/skill-usage.js +74 -0
- package/dist/src/cli/handlers/steward.js +567 -0
- package/dist/src/cli/handlers/subcommands.js +1702 -0
- package/dist/src/cli/handlers/team.js +337 -0
- package/dist/src/cli/handlers/types.js +11 -0
- package/dist/src/cli/handlers/use.js +2772 -0
- package/dist/src/cli/handlers/utilities.js +703 -0
- package/dist/src/cli/handlers/version.js +134 -0
- package/dist/src/cli/handlers/workspace-context.js +93 -0
- package/dist/src/cli/handlers/workspace.js +126 -0
- package/dist/src/cli/help-generator.js +178 -0
- package/dist/src/cli/hooks/builtin/activity-log-hook.js +126 -0
- package/dist/src/cli/hooks/executor.js +96 -0
- package/dist/src/cli/hooks/index.js +15 -0
- package/dist/src/cli/hooks/registry.js +143 -0
- package/dist/src/cli/hooks/types.js +13 -0
- package/dist/src/cli/log.js +492 -0
- package/dist/src/cli/project-isolation/detect.js +70 -0
- package/dist/src/cli/project-isolation/index.js +7 -0
- package/dist/src/cli/project-isolation/signals.js +17 -0
- package/dist/src/cli/project-isolation/warning.js +102 -0
- package/dist/src/cli/prompt-utils.js +155 -0
- package/dist/src/cli/provider-deployment-plan.js +126 -0
- package/dist/src/cli/provider-resolution.js +119 -0
- package/dist/src/cli/router.js +305 -0
- package/dist/src/cli/scope-resolver.js +392 -0
- package/dist/src/cli/skill-usage.js +616 -0
- package/dist/src/cli/ui.js +224 -0
- package/dist/src/cli/watch-service.js +203 -0
- package/dist/src/cli/workflow-orchestrator.js +478 -0
- package/dist/src/cli/workspace-signals.js +321 -0
- package/dist/src/community/footer.js +14 -0
- package/dist/src/community/links.js +123 -0
- package/dist/src/community/milestones.js +46 -0
- package/dist/src/community/nudge-policy.js +93 -0
- package/dist/src/config/aiwg-config.js +883 -0
- package/dist/src/config/cli.js +703 -0
- package/dist/src/config/gitignore.js +156 -0
- package/dist/src/config/project-artifacts.js +76 -0
- package/dist/src/config/user-config.js +428 -0
- package/dist/src/config/user-registry.js +127 -0
- package/dist/src/config/workspace.js +276 -0
- package/dist/src/contributors/detect.js +39 -0
- package/dist/src/contributors/discover.js +172 -0
- package/dist/src/contributors/heuristic.js +186 -0
- package/dist/src/contributors/index.js +11 -0
- package/dist/src/contributors/types.js +13 -0
- package/dist/src/contributors/validation.js +116 -0
- package/dist/src/data/community.schema.json +43 -0
- package/dist/src/data/community.yaml +16 -0
- package/dist/src/extensions/capability-index.js +270 -0
- package/dist/src/extensions/claude-hooks-installer.js +268 -0
- package/dist/src/extensions/commands/definitions.js +3485 -0
- package/dist/src/extensions/deployment-registration.js +463 -0
- package/dist/src/extensions/index.js +22 -0
- package/dist/src/extensions/loader.js +132 -0
- package/dist/src/extensions/managed-marker.js +100 -0
- package/dist/src/extensions/manifest.js +196 -0
- package/dist/src/extensions/project-local-activity.js +114 -0
- package/dist/src/extensions/project-local-discovery.js +261 -0
- package/dist/src/extensions/project-local-doctor.js +281 -0
- package/dist/src/extensions/project-local-gitignore.js +176 -0
- package/dist/src/extensions/project-local-paths.js +121 -0
- package/dist/src/extensions/project-local-promote.js +218 -0
- package/dist/src/extensions/project-local-remove.js +373 -0
- package/dist/src/extensions/project-local-scaffold.js +252 -0
- package/dist/src/extensions/project-quickref.js +291 -0
- package/dist/src/extensions/registry.js +368 -0
- package/dist/src/extensions/shadow-resolver.js +271 -0
- package/dist/src/extensions/types.js +86 -0
- package/dist/src/extensions/upstream-registry.js +195 -0
- package/dist/src/extensions/validation.js +631 -0
- package/dist/src/features/catalog.js +88 -0
- package/dist/src/features/cli.js +197 -0
- package/dist/src/features/installer.js +57 -0
- package/dist/src/features/paths.js +14 -0
- package/dist/src/features/runtime.js +21 -0
- package/dist/src/features/status.js +134 -0
- package/dist/src/hooks/laziness-detection.js +532 -0
- package/dist/src/intake/git-history-analyzer.js +486 -0
- package/dist/src/intake/index.js +9 -0
- package/dist/src/issues/cli.js +327 -0
- package/dist/src/issues/index.js +5 -0
- package/dist/src/issues/live.js +154 -0
- package/dist/src/issues/local.js +666 -0
- package/dist/src/issues/sync.js +143 -0
- package/dist/src/issues/types.js +2 -0
- package/dist/src/issues/workflows.js +164 -0
- package/dist/src/kb/cli.js +173 -0
- package/dist/src/lint/cli.js +171 -0
- package/dist/src/lint/loader.js +225 -0
- package/dist/src/lint/reporters.js +141 -0
- package/dist/src/lint/runner.js +364 -0
- package/dist/src/lint/types.js +10 -0
- package/dist/src/marketplace/cache.js +110 -0
- package/dist/src/marketplace/identifier.js +63 -0
- package/dist/src/marketplace/registry.js +36 -0
- package/dist/src/marketplace/sources/clawhub.js +53 -0
- package/dist/src/marketplace/sources/git.js +45 -0
- package/dist/src/marketplace/types.js +9 -0
- package/dist/src/mcp/adapters/codex-runtime.js +224 -0
- package/dist/src/mcp/cli.mjs +1197 -0
- package/dist/src/mcp/elicitation.mjs +149 -0
- package/dist/src/mcp/helpers.mjs +287 -0
- package/dist/src/mcp/index.mjs +11 -0
- package/dist/src/mcp/profiles.js +263 -0
- package/dist/src/mcp/profiles.mjs +360 -0
- package/dist/src/mcp/registry.js +376 -0
- package/dist/src/mcp/registry.mjs +387 -0
- package/dist/src/mcp/server.mjs +633 -0
- package/dist/src/mcp/test-simple.mjs +271 -0
- package/dist/src/mcp/tools/command-run.mjs +101 -0
- package/dist/src/mcp/tools/discovery.mjs +291 -0
- package/dist/src/mcp/tools/interaction.mjs +87 -0
- package/dist/src/mcp/tools/orchestration.mjs +320 -0
- package/dist/src/mcp/tools/subsystems.mjs +640 -0
- package/dist/src/memory/cli.js +166 -0
- package/dist/src/memory/project-registry.js +282 -0
- package/dist/src/metrics/artifact-metrics.js +184 -0
- package/dist/src/metrics/context-budget.js +174 -0
- package/dist/src/metrics/token-counter.js +133 -0
- package/dist/src/models/config-loader.js +228 -0
- package/dist/src/models/index.js +22 -0
- package/dist/src/models/model-capabilities.v1.json +120 -0
- package/dist/src/models/model-catalog.v1.json +96 -0
- package/dist/src/models/model-discovery.js +521 -0
- package/dist/src/models/provider-models.js +73 -0
- package/dist/src/models/provider-policy.js +273 -0
- package/dist/src/models/resolver.js +245 -0
- package/dist/src/models/router.js +70 -0
- package/dist/src/models/types.js +8 -0
- package/dist/src/models/wrapper-deployment.js +178 -0
- package/dist/src/models/wrapper-route.js +54 -0
- package/dist/src/ops/cli.js +268 -0
- package/dist/src/ops/registry.js +623 -0
- package/dist/src/packages/adapters/clawhub.js +113 -0
- package/dist/src/packages/adapters/git.js +153 -0
- package/dist/src/packages/adapters/gitea.js +93 -0
- package/dist/src/packages/adapters/github.js +69 -0
- package/dist/src/packages/adapters/local-cache.js +89 -0
- package/dist/src/packages/package-registry.js +143 -0
- package/dist/src/packages/registry.js +238 -0
- package/dist/src/packages/types.js +11 -0
- package/dist/src/plugin/cross-framework-ops.js +475 -0
- package/dist/src/plugin/framework-config-loader.js +235 -0
- package/dist/src/plugin/framework-detector.js +186 -0
- package/dist/src/plugin/framework-isolator.js +341 -0
- package/dist/src/plugin/framework-migration.js +371 -0
- package/dist/src/plugin/metadata-validator.js +906 -0
- package/dist/src/plugin/plugin-installer.js +436 -0
- package/dist/src/plugin/plugin-status.js +369 -0
- package/dist/src/plugin/plugin-uninstaller.js +473 -0
- package/dist/src/plugin/registry-validator.js +344 -0
- package/dist/src/plugin/skill-command-translator.js +415 -0
- package/dist/src/plugin/workspace-creator.js +189 -0
- package/dist/src/plugin/workspace-migrator.js +821 -0
- package/dist/src/policy/authorization.js +390 -0
- package/dist/src/policy/repo-access.js +215 -0
- package/dist/src/provenance/cli.js +16 -0
- package/dist/src/providers/capability-matrix.js +300 -0
- package/dist/src/providers/capability-matrix.yaml +514 -0
- package/dist/src/providers/provider-definitions.js +977 -0
- package/dist/src/providers/provider-definitions.mjs +159 -0
- package/dist/src/providers/provider-inventory.js +169 -0
- package/dist/src/quality/feedback-ab.js +174 -0
- package/dist/src/quality/feedback-collector.js +176 -0
- package/dist/src/quality/feedback-tracker.js +123 -0
- package/dist/src/quality/patterns/adr.json +24 -0
- package/dist/src/quality/patterns/sad.json +24 -0
- package/dist/src/quality/patterns/test-plan.json +24 -0
- package/dist/src/quality/patterns/use-case.json +24 -0
- package/dist/src/quality/scoring.js +157 -0
- package/dist/src/reflections/cli.js +15 -0
- package/dist/src/release/plan.js +139 -0
- package/dist/src/research/cache/manager.js +227 -0
- package/dist/src/research/clients/arxiv.js +156 -0
- package/dist/src/research/clients/base.js +197 -0
- package/dist/src/research/clients/crossref.js +112 -0
- package/dist/src/research/clients/semantic-scholar.js +126 -0
- package/dist/src/research/clients/unpaywall.js +87 -0
- package/dist/src/research/index.js +14 -0
- package/dist/src/research/query-cli.js +336 -0
- package/dist/src/research/services/acquisition.js +313 -0
- package/dist/src/research/services/archival.js +225 -0
- package/dist/src/research/services/citation.js +279 -0
- package/dist/src/research/services/discovery.js +243 -0
- package/dist/src/research/services/documentation.js +269 -0
- package/dist/src/research/services/index.js +14 -0
- package/dist/src/research/services/provenance.js +279 -0
- package/dist/src/research/services/quality.js +370 -0
- package/dist/src/research/services/types.js +7 -0
- package/dist/src/research/storage-cli.js +20 -0
- package/dist/src/research/types.js +47 -0
- package/dist/src/resources/index.d.ts +2 -0
- package/dist/src/resources/index.js +2 -0
- package/dist/src/resources/web-release.d.ts +89 -0
- package/dist/src/resources/web-release.js +882 -0
- package/dist/src/rlm/cache/cli.js +162 -0
- package/dist/src/rlm/cache/hash.js +35 -0
- package/dist/src/rlm/cache/store.js +170 -0
- package/dist/src/rlm/cache/types.js +8 -0
- package/dist/src/rlm/cli.js +650 -0
- package/dist/src/serve/a2a-terminal-observer.js +120 -0
- package/dist/src/serve/agent-router.js +205 -0
- package/dist/src/serve/dispatch-router.js +171 -0
- package/dist/src/serve/executor-registry.js +715 -0
- package/dist/src/serve/mission-conductor.js +177 -0
- package/dist/src/serve/orchestrator-adapter.js +113 -0
- package/dist/src/serve/orchestrator-override.js +94 -0
- package/dist/src/serve/orchestrator-pty.js +133 -0
- package/dist/src/serve/pty-bridge.js +799 -0
- package/dist/src/serve/sandbox-registry.js +832 -0
- package/dist/src/serve/screen-reader.js +228 -0
- package/dist/src/serve/stack-adapters.js +68 -0
- package/dist/src/serve/telemetry.js +143 -0
- package/dist/src/skills/adapters/clawhub.js +250 -0
- package/dist/src/skills/adapters/local.js +335 -0
- package/dist/src/skills/adapters/openclaw.js +316 -0
- package/dist/src/skills/cli.js +334 -0
- package/dist/src/skills/registry.js +117 -0
- package/dist/src/skills/run.js +259 -0
- package/dist/src/skills/runtime.js +94 -0
- package/dist/src/skills/types.js +10 -0
- package/dist/src/smiths/agentsmith/demo.js +116 -0
- package/dist/src/smiths/agentsmith/examples.js +300 -0
- package/dist/src/smiths/agentsmith/generator.js +503 -0
- package/dist/src/smiths/agentsmith/index.js +11 -0
- package/dist/src/smiths/agentsmith/types.js +8 -0
- package/dist/src/smiths/commandsmith/example.js +220 -0
- package/dist/src/smiths/commandsmith/generator.js +288 -0
- package/dist/src/smiths/commandsmith/index.js +41 -0
- package/dist/src/smiths/commandsmith/templates.js +296 -0
- package/dist/src/smiths/commandsmith/types.js +7 -0
- package/dist/src/smiths/context-pipeline/aiwg-md.js +104 -0
- package/dist/src/smiths/context-pipeline/allowlist.js +195 -0
- package/dist/src/smiths/context-pipeline/claude-hook.js +127 -0
- package/dist/src/smiths/context-pipeline/discovery.js +187 -0
- package/dist/src/smiths/context-pipeline/external-links-section.js +49 -0
- package/dist/src/smiths/context-pipeline/finalization.js +147 -0
- package/dist/src/smiths/context-pipeline/generator.js +477 -0
- package/dist/src/smiths/context-pipeline/index.js +30 -0
- package/dist/src/smiths/context-pipeline/legacy-inject.js +103 -0
- package/dist/src/smiths/context-pipeline/managed-hook.js +95 -0
- package/dist/src/smiths/context-pipeline/overflow.js +212 -0
- package/dist/src/smiths/context-pipeline/parallelism-section.js +94 -0
- package/dist/src/smiths/context-pipeline/provider-policy.js +64 -0
- package/dist/src/smiths/context-pipeline/sanitizer.js +93 -0
- package/dist/src/smiths/context-pipeline/types.js +23 -0
- package/dist/src/smiths/context-pipeline/workspace-context.js +988 -0
- package/dist/src/smiths/hook-bridge/codex-translator.js +129 -0
- package/dist/src/smiths/hook-bridge/copilot-translator.js +64 -0
- package/dist/src/smiths/hook-bridge/factory-translator.js +43 -0
- package/dist/src/smiths/hook-bridge/hermes-translator.js +88 -0
- package/dist/src/smiths/hook-bridge/index.js +79 -0
- package/dist/src/smiths/hook-bridge/loader.js +116 -0
- package/dist/src/smiths/hook-bridge/shim.js +89 -0
- package/dist/src/smiths/hook-bridge/types.js +31 -0
- package/dist/src/smiths/index.js +39 -0
- package/dist/src/smiths/mcpsmith/analyzers/cli-analyzer.js +390 -0
- package/dist/src/smiths/mcpsmith/example.js +119 -0
- package/dist/src/smiths/mcpsmith/generator.js +236 -0
- package/dist/src/smiths/mcpsmith/index.js +17 -0
- package/dist/src/smiths/mcpsmith/types.js +10 -0
- package/dist/src/smiths/platform-paths.js +101 -0
- package/dist/src/smiths/skillsmith/codex-sidecar.js +85 -0
- package/dist/src/smiths/skillsmith/collision-detector.js +249 -0
- package/dist/src/smiths/skillsmith/demo.js +83 -0
- package/dist/src/smiths/skillsmith/examples.js +161 -0
- package/dist/src/smiths/skillsmith/generator.js +316 -0
- package/dist/src/smiths/skillsmith/index.js +12 -0
- package/dist/src/smiths/skillsmith/namespace-adapter.js +180 -0
- package/dist/src/smiths/skillsmith/platform-resolver.js +157 -0
- package/dist/src/smiths/skillsmith/types.js +9 -0
- package/dist/src/smiths/toolsmith/index.js +10 -0
- package/dist/src/smiths/toolsmith/runtime-discovery.mjs +710 -0
- package/dist/src/smiths/toolsmith/types.js +8 -0
- package/dist/src/storage/backends/fortemi.js +227 -0
- package/dist/src/storage/backends/fs.js +134 -0
- package/dist/src/storage/backends/logseq.js +309 -0
- package/dist/src/storage/backends/obsidian.js +233 -0
- package/dist/src/storage/cli.js +468 -0
- package/dist/src/storage/config.js +272 -0
- package/dist/src/storage/index.js +108 -0
- package/dist/src/storage/subsystem-cli.js +201 -0
- package/dist/src/storage/types.js +33 -0
- package/dist/src/testing/corpus/corpus-builder.js +383 -0
- package/dist/src/testing/corpus/ground-truth-manager.js +460 -0
- package/dist/src/testing/corpus/index.js +10 -0
- package/dist/src/testing/fixtures/index.js +9 -0
- package/dist/src/testing/fixtures/test-data-factory.js +472 -0
- package/dist/src/testing/generators/index.js +11 -0
- package/dist/src/testing/generators/test-case-generator.js +393 -0
- package/dist/src/testing/generators/test-code-generator.js +384 -0
- package/dist/src/testing/generators/use-case-parser.js +325 -0
- package/dist/src/testing/index.js +11 -0
- package/dist/src/tracker/capability-protocol.js +118 -0
- package/dist/src/update/checker.mjs +396 -0
- package/dist/src/update/notifier.mjs +235 -0
- package/dist/src/writing/content-diversifier.js +804 -0
- package/dist/src/writing/example-generator.js +959 -0
- package/dist/src/writing/example-templates.js +99 -0
- package/dist/src/writing/pattern-library.js +486 -0
- package/dist/src/writing/patterns/banned-phrases.json +4413 -0
- package/dist/src/writing/patterns/formulaic-structures.json +1300 -0
- package/dist/src/writing/patterns/generic-adjectives.json +1510 -0
- package/dist/src/writing/patterns/hedging-language.json +2096 -0
- package/dist/src/writing/patterns/transition-words.json +1285 -0
- package/dist/src/writing/patterns/weak-verbs.json +1112 -0
- package/dist/src/writing/prompt-optimizer.js +660 -0
- package/dist/src/writing/prompt-templates.js +583 -0
- package/dist/src/writing/scoring-config-loader.js +168 -0
- package/dist/src/writing/validation-engine.js +595 -0
- package/dist/src/writing/validation-rules.js +380 -0
- package/dist/src/writing/voice-analyzer.js +439 -0
- package/dist/src/writing/voice-calibration.js +661 -0
- package/dist/src/writing/voice-profiles.json +588 -0
- package/package.json +64 -9
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { glob } from 'glob';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { recordTypeForEntry, stableRecordId } from './browser-export.js';
|
|
4
|
+
export class CapabilityResolutionError extends Error {
|
|
5
|
+
kind;
|
|
6
|
+
constructor(message, kind) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.kind = kind;
|
|
9
|
+
this.name = 'CapabilityResolutionError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const PATTERNS = {
|
|
13
|
+
agent: ['agentic/code/{frameworks,addons,extensions,plugins}/**/agents/*.md'],
|
|
14
|
+
skill: [
|
|
15
|
+
'agentic/code/{frameworks,addons,extensions,plugins}/**/skills/*/SKILL.md',
|
|
16
|
+
'agentic/code/{frameworks,addons,extensions,plugins}/**/skills/*.{md,yaml,yml}',
|
|
17
|
+
],
|
|
18
|
+
rule: ['agentic/code/{frameworks,addons,extensions,plugins}/**/rules/*.{md,yaml,yml}'],
|
|
19
|
+
workflow: [
|
|
20
|
+
'agentic/code/{frameworks,addons,extensions,plugins}/**/flows/*.playbook.{yaml,yml}',
|
|
21
|
+
'agentic/code/{frameworks,addons,extensions,plugins}/**/workflows/*.{md,yaml,yml}',
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
function candidateName(type, file) {
|
|
25
|
+
if (type === 'skill' && path.basename(file) === 'SKILL.md')
|
|
26
|
+
return path.basename(path.dirname(file));
|
|
27
|
+
return path.basename(file).replace(/\.playbook\.(?:yaml|yml)$/i, '').replace(/\.(?:md|yaml|yml)$/i, '');
|
|
28
|
+
}
|
|
29
|
+
function candidatePriority(relativePath) {
|
|
30
|
+
if (relativePath.includes('/plugins/'))
|
|
31
|
+
return 3;
|
|
32
|
+
if (relativePath.includes('/extensions/'))
|
|
33
|
+
return 2;
|
|
34
|
+
if (relativePath.includes('/addons/'))
|
|
35
|
+
return 1;
|
|
36
|
+
return 0;
|
|
37
|
+
}
|
|
38
|
+
function stableId(type, relativePath) {
|
|
39
|
+
const entry = {
|
|
40
|
+
path: relativePath,
|
|
41
|
+
type: type === 'workflow' ? 'flow' : type,
|
|
42
|
+
};
|
|
43
|
+
return stableRecordId(recordTypeForEntry(entry, 'v2'), relativePath);
|
|
44
|
+
}
|
|
45
|
+
async function collectCandidates(frameworkRoot) {
|
|
46
|
+
const candidates = [];
|
|
47
|
+
for (const type of Object.keys(PATTERNS)) {
|
|
48
|
+
const files = await glob(PATTERNS[type], {
|
|
49
|
+
cwd: frameworkRoot,
|
|
50
|
+
nodir: true,
|
|
51
|
+
dot: true,
|
|
52
|
+
posix: true,
|
|
53
|
+
});
|
|
54
|
+
for (const relativePath of files)
|
|
55
|
+
candidates.push({
|
|
56
|
+
type,
|
|
57
|
+
name: candidateName(type, relativePath),
|
|
58
|
+
relativePath,
|
|
59
|
+
stableId: stableId(type, relativePath),
|
|
60
|
+
priority: candidatePriority(relativePath),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return candidates;
|
|
64
|
+
}
|
|
65
|
+
export async function resolveRoutableCapability(frameworkRoot, type, requested) {
|
|
66
|
+
const needle = requested.trim();
|
|
67
|
+
const candidates = await collectCandidates(frameworkRoot);
|
|
68
|
+
const exact = candidates.filter(candidate => candidate.type === type
|
|
69
|
+
&& (candidate.name === needle || candidate.stableId === needle));
|
|
70
|
+
if (exact.length === 0) {
|
|
71
|
+
const otherTypes = [...new Set(candidates
|
|
72
|
+
.filter(candidate => candidate.name === needle || candidate.stableId === needle)
|
|
73
|
+
.map(candidate => candidate.type))];
|
|
74
|
+
if (otherTypes.length > 0)
|
|
75
|
+
throw new CapabilityResolutionError(`Capability ${needle} exists as ${otherTypes.join(', ')}, not ${type}.`, 'type-mismatch');
|
|
76
|
+
throw new CapabilityResolutionError(`No ${type} capability found for ${needle}.`, 'missing');
|
|
77
|
+
}
|
|
78
|
+
const bestPriority = Math.min(...exact.map(candidate => candidate.priority));
|
|
79
|
+
const preferred = exact.filter(candidate => candidate.priority === bestPriority);
|
|
80
|
+
if (preferred.length > 1)
|
|
81
|
+
throw new CapabilityResolutionError(`Capability ${needle} is ambiguous for ${type}: ${preferred.map(item => item.relativePath).join(', ')}`, 'ambiguous');
|
|
82
|
+
const selected = preferred[0];
|
|
83
|
+
return {
|
|
84
|
+
type,
|
|
85
|
+
id: selected.stableId,
|
|
86
|
+
name: selected.name,
|
|
87
|
+
source: {
|
|
88
|
+
path: selected.relativePath,
|
|
89
|
+
scope: 'packaged',
|
|
90
|
+
provenance: 'corpus',
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=capability-resolver.js.map
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checksum Manifest — Fast Change Detection
|
|
3
|
+
*
|
|
4
|
+
* Stores `{ path, checksum, mtime, size }` per indexed file to enable
|
|
5
|
+
* two-phase change detection:
|
|
6
|
+
* Phase 1: stat() comparison (no file read) — filter out unchanged files
|
|
7
|
+
* Phase 2: content read + checksum — only for candidates where stat differs
|
|
8
|
+
*
|
|
9
|
+
* This avoids reading every file on `aiwg index build` when most haven't
|
|
10
|
+
* changed, reducing rebuild time from O(N reads) to O(N stats + M reads)
|
|
11
|
+
* where M << N on typical projects.
|
|
12
|
+
*
|
|
13
|
+
* @implements #794
|
|
14
|
+
* @source @src/artifacts/index-builder.ts
|
|
15
|
+
*/
|
|
16
|
+
import fs from 'fs';
|
|
17
|
+
import path from 'path';
|
|
18
|
+
const MANIFEST_FILENAME = 'checksum-manifest.json';
|
|
19
|
+
/**
|
|
20
|
+
* Build a manifest entry from a file's current stat + checksum
|
|
21
|
+
*/
|
|
22
|
+
export function makeEntry(checksum, stat) {
|
|
23
|
+
return {
|
|
24
|
+
checksum,
|
|
25
|
+
mtime: stat.mtime.toISOString(),
|
|
26
|
+
size: stat.size,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Load the checksum manifest from an index directory.
|
|
31
|
+
* Returns an empty manifest if the file is missing or malformed.
|
|
32
|
+
*/
|
|
33
|
+
export function loadManifest(indexDir) {
|
|
34
|
+
const manifestPath = path.join(indexDir, MANIFEST_FILENAME);
|
|
35
|
+
if (!fs.existsSync(manifestPath)) {
|
|
36
|
+
return { version: 1, generated: '', entries: {} };
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const raw = fs.readFileSync(manifestPath, 'utf-8');
|
|
40
|
+
const parsed = JSON.parse(raw);
|
|
41
|
+
if (parsed.version !== 1 || !parsed.entries) {
|
|
42
|
+
return { version: 1, generated: '', entries: {} };
|
|
43
|
+
}
|
|
44
|
+
return parsed;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return { version: 1, generated: '', entries: {} };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Write the checksum manifest atomically (write to temp, rename).
|
|
52
|
+
*/
|
|
53
|
+
export function writeManifest(indexDir, manifest) {
|
|
54
|
+
fs.mkdirSync(indexDir, { recursive: true });
|
|
55
|
+
const manifestPath = path.join(indexDir, MANIFEST_FILENAME);
|
|
56
|
+
const tmpPath = `${manifestPath}.tmp`;
|
|
57
|
+
const payload = {
|
|
58
|
+
version: 1,
|
|
59
|
+
generated: new Date().toISOString(),
|
|
60
|
+
entries: manifest.entries,
|
|
61
|
+
};
|
|
62
|
+
fs.writeFileSync(tmpPath, JSON.stringify(payload, null, 2), 'utf-8');
|
|
63
|
+
fs.renameSync(tmpPath, manifestPath);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Phase 1 check: can we skip this file based on stat alone?
|
|
67
|
+
*
|
|
68
|
+
* Returns true if the file's current mtime and size match the manifest entry —
|
|
69
|
+
* in which case we presume the content is unchanged and skip the read.
|
|
70
|
+
*/
|
|
71
|
+
export function statMatches(stat, entry) {
|
|
72
|
+
if (!entry)
|
|
73
|
+
return false;
|
|
74
|
+
return stat.mtime.toISOString() === entry.mtime && stat.size === entry.size;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Remove stale entries (files that no longer exist on disk) from the manifest.
|
|
78
|
+
* Returns the count removed.
|
|
79
|
+
*/
|
|
80
|
+
export function pruneManifest(manifest, cwd) {
|
|
81
|
+
let removed = 0;
|
|
82
|
+
for (const relativePath of Object.keys(manifest.entries)) {
|
|
83
|
+
const fullPath = path.join(cwd, relativePath);
|
|
84
|
+
if (!fs.existsSync(fullPath)) {
|
|
85
|
+
delete manifest.entries[relativePath];
|
|
86
|
+
removed++;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return removed;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=checksum-manifest.js.map
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Citation Sidecar Edge Extraction
|
|
3
|
+
*
|
|
4
|
+
* Parses markdown citation sidecar files into typed graph edges.
|
|
5
|
+
* Each sidecar has YAML frontmatter with `ref: <id>` and two markdown tables:
|
|
6
|
+
*
|
|
7
|
+
* - **Outgoing**: papers this work cites (column: "Inducted REF") → `cites` edges
|
|
8
|
+
* - **Incoming**: corpus papers that cite this work (column: "REF") → `cited-by` edges
|
|
9
|
+
*
|
|
10
|
+
* Supported node-id forms (#105):
|
|
11
|
+
* - `REF-\d+` research-paper IDs (REF-001, REF-029, ...)
|
|
12
|
+
* - `PROF-[POFG]-[a-z0-9-]+` entity-profile IDs:
|
|
13
|
+
* - `PROF-P-*` people, `PROF-O-*` orgs, `PROF-F-*` funders, `PROF-G-*` groups
|
|
14
|
+
*
|
|
15
|
+
* Both forms can appear as the sidecar's source (`frontmatter.ref`) and as
|
|
16
|
+
* targets in the outgoing/incoming tables. The two ID spaces are
|
|
17
|
+
* unambiguous (always prefixed) and orthogonal.
|
|
18
|
+
*
|
|
19
|
+
* @implements #722
|
|
20
|
+
* @implements #105
|
|
21
|
+
* @source @src/artifacts/types.ts
|
|
22
|
+
* @tests @test/unit/artifacts/citation-parser.test.ts
|
|
23
|
+
*/
|
|
24
|
+
import { parseFrontmatter } from './index-builder.js';
|
|
25
|
+
/**
|
|
26
|
+
* Match a single node identifier (REF-* or PROF-*) anywhere in a string.
|
|
27
|
+
* Used by `extractRefsFromTable` to pull every ID out of a table cell.
|
|
28
|
+
*/
|
|
29
|
+
const NODE_ID_PATTERN = /(?:REF-\d+|PROF-[POFG]-[a-z0-9-]+)/g;
|
|
30
|
+
/**
|
|
31
|
+
* Validate that a string is a complete node identifier.
|
|
32
|
+
* Used by `parseCitationSidecar` and `buildRefToPathMap` to gate
|
|
33
|
+
* frontmatter `ref` values.
|
|
34
|
+
*/
|
|
35
|
+
const NODE_ID_FULL = /^(?:REF-\d+|PROF-[POFG]-[a-z0-9-]+)$/;
|
|
36
|
+
/**
|
|
37
|
+
* Test whether a string is a valid sidecar node identifier.
|
|
38
|
+
*
|
|
39
|
+
* Accepts `REF-\d+` and `PROF-[POFG]-[a-z0-9-]+`. Returns false for any
|
|
40
|
+
* other input (including unrelated `PROF-` prefixed strings that don't
|
|
41
|
+
* match the four-letter type code form).
|
|
42
|
+
*/
|
|
43
|
+
export function isNodeId(value) {
|
|
44
|
+
return typeof value === 'string' && NODE_ID_FULL.test(value);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Extract node identifiers from a markdown table column.
|
|
48
|
+
*
|
|
49
|
+
* Scans table rows for a column matching `columnName` (case-insensitive)
|
|
50
|
+
* and extracts node IDs (REF-* or PROF-*), skipping empty/dash values.
|
|
51
|
+
*
|
|
52
|
+
* @param tableText - Markdown table text (header + separator + rows)
|
|
53
|
+
* @param columnName - Column header to extract from (e.g., "Inducted REF")
|
|
54
|
+
* @returns Array of node identifiers found
|
|
55
|
+
*/
|
|
56
|
+
export function extractRefsFromTable(tableText, columnName) {
|
|
57
|
+
const lines = tableText.split('\n').filter(l => l.trim().startsWith('|'));
|
|
58
|
+
if (lines.length < 3)
|
|
59
|
+
return []; // Need header + separator + at least one row
|
|
60
|
+
// Parse header to find column index
|
|
61
|
+
const headerCells = lines[0].split('|').map(c => c.trim()).filter(Boolean);
|
|
62
|
+
const colIndex = headerCells.findIndex(h => h.toLowerCase() === columnName.toLowerCase());
|
|
63
|
+
if (colIndex === -1)
|
|
64
|
+
return [];
|
|
65
|
+
// Skip header (line 0) and separator (line 1), parse data rows
|
|
66
|
+
const refs = [];
|
|
67
|
+
for (let i = 2; i < lines.length; i++) {
|
|
68
|
+
const cells = lines[i].split('|').map(c => c.trim()).filter(Boolean);
|
|
69
|
+
if (colIndex >= cells.length)
|
|
70
|
+
continue;
|
|
71
|
+
const value = cells[colIndex].trim();
|
|
72
|
+
// Skip empty, dash, or em-dash values
|
|
73
|
+
if (!value || value === '—' || value === '-' || value === '–')
|
|
74
|
+
continue;
|
|
75
|
+
// Extract node-id pattern(s) (REF-* or PROF-*) from the cell.
|
|
76
|
+
// Reset the lastIndex defensively — NODE_ID_PATTERN is a module-level
|
|
77
|
+
// /g RegExp shared across calls.
|
|
78
|
+
NODE_ID_PATTERN.lastIndex = 0;
|
|
79
|
+
const refMatches = value.match(NODE_ID_PATTERN);
|
|
80
|
+
if (refMatches) {
|
|
81
|
+
refs.push(...refMatches);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return refs;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Parse a citation sidecar markdown file into structured edges.
|
|
88
|
+
*
|
|
89
|
+
* @param content - Full markdown content of the sidecar file
|
|
90
|
+
* @returns Parse result with ref ID and edge arrays, or null if not a valid sidecar
|
|
91
|
+
*/
|
|
92
|
+
export function parseCitationSidecar(content) {
|
|
93
|
+
const { data, body } = parseFrontmatter(content);
|
|
94
|
+
// Must have a node identifier in frontmatter (REF-* or PROF-*)
|
|
95
|
+
const ref = typeof data.ref === 'string' ? data.ref : null;
|
|
96
|
+
if (!ref || !NODE_ID_FULL.test(ref))
|
|
97
|
+
return null;
|
|
98
|
+
// Split body into sections by ## headings
|
|
99
|
+
const sections = body.split(/^## /m).filter(Boolean);
|
|
100
|
+
let cites = [];
|
|
101
|
+
let citedBy = [];
|
|
102
|
+
for (const section of sections) {
|
|
103
|
+
const sectionLower = section.toLowerCase();
|
|
104
|
+
if (sectionLower.startsWith('outgoing')) {
|
|
105
|
+
// Outgoing table: extract from "Inducted REF" column
|
|
106
|
+
cites = extractRefsFromTable(section, 'Inducted REF');
|
|
107
|
+
}
|
|
108
|
+
else if (sectionLower.startsWith('incoming')) {
|
|
109
|
+
// Incoming table: extract from "REF" column
|
|
110
|
+
// The incoming section may have subsections (### Corpus Cross-References)
|
|
111
|
+
// Look for tables anywhere in this section
|
|
112
|
+
citedBy = extractRefsFromTable(section, 'REF');
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return { ref, cites, citedBy };
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Convert a CitationParseResult into TypedEdge arrays for the dependency graph.
|
|
119
|
+
*
|
|
120
|
+
* @param result - Parsed citation sidecar
|
|
121
|
+
* @param refToPath - Map from REF-XXX to file path in the index
|
|
122
|
+
* @returns Object with upstream (cites) and downstream (cited-by) typed edges
|
|
123
|
+
*/
|
|
124
|
+
export function citationResultToEdges(result, refToPath) {
|
|
125
|
+
const upstream = [];
|
|
126
|
+
const downstream = [];
|
|
127
|
+
// Outgoing citations → upstream "cites" edges
|
|
128
|
+
for (const citedRef of result.cites) {
|
|
129
|
+
const targetPath = refToPath.get(citedRef);
|
|
130
|
+
if (targetPath) {
|
|
131
|
+
upstream.push({ path: targetPath, type: 'cites' });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Incoming citations → downstream "cited-by" edges
|
|
135
|
+
for (const citingRef of result.citedBy) {
|
|
136
|
+
const sourcePath = refToPath.get(citingRef);
|
|
137
|
+
if (sourcePath) {
|
|
138
|
+
downstream.push({ path: sourcePath, type: 'cited-by' });
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return { upstream, downstream };
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Build a node-id → file path mapping from indexed entries.
|
|
145
|
+
*
|
|
146
|
+
* Scans entry frontmatter for `ref` fields matching the node-id pattern
|
|
147
|
+
* (REF-* or PROF-*).
|
|
148
|
+
*
|
|
149
|
+
* @param entries - Map of path → parsed frontmatter data
|
|
150
|
+
* @returns Map from node identifier to file path
|
|
151
|
+
*/
|
|
152
|
+
export function buildRefToPathMap(entries) {
|
|
153
|
+
const map = new Map();
|
|
154
|
+
for (const [filePath, data] of entries) {
|
|
155
|
+
const ref = typeof data.ref === 'string' ? data.ref : null;
|
|
156
|
+
if (ref && NODE_ID_FULL.test(ref)) {
|
|
157
|
+
map.set(ref, filePath);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return map;
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=citation-parser.js.map
|