@evalops/maestro 0.10.50 → 0.10.51
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/dist/agent/agent-outcome.d.ts +54 -0
- package/dist/agent/agent-outcome.d.ts.map +1 -0
- package/dist/agent/agent-outcome.js +142 -0
- package/dist/agent/agent-outcome.js.map +1 -0
- package/dist/agent/agent-resume.d.ts.map +1 -1
- package/dist/agent/agent-resume.js +3 -3
- package/dist/agent/agent-resume.js.map +1 -1
- package/dist/agent/agent-run-summary.d.ts +37 -0
- package/dist/agent/agent-run-summary.d.ts.map +1 -0
- package/dist/agent/agent-run-summary.js +15 -0
- package/dist/agent/agent-run-summary.js.map +1 -0
- package/dist/agent/agent-work-board.d.ts +82 -0
- package/dist/agent/agent-work-board.d.ts.map +1 -0
- package/dist/agent/agent-work-board.js +312 -0
- package/dist/agent/agent-work-board.js.map +1 -0
- package/dist/agent/auto-compaction.d.ts +7 -2
- package/dist/agent/auto-compaction.d.ts.map +1 -1
- package/dist/agent/auto-compaction.js +23 -10
- package/dist/agent/auto-compaction.js.map +1 -1
- package/dist/agent/mission-artifacts.d.ts +62 -0
- package/dist/agent/mission-artifacts.d.ts.map +1 -0
- package/dist/agent/mission-artifacts.js +438 -0
- package/dist/agent/mission-artifacts.js.map +1 -0
- package/dist/agent/mission-manifest.d.ts +139 -3
- package/dist/agent/mission-manifest.d.ts.map +1 -1
- package/dist/agent/mission-manifest.js +549 -3
- package/dist/agent/mission-manifest.js.map +1 -1
- package/dist/agent/mission-store.d.ts +80 -0
- package/dist/agent/mission-store.d.ts.map +1 -0
- package/dist/agent/mission-store.js +603 -0
- package/dist/agent/mission-store.js.map +1 -0
- package/dist/agent/modes.d.ts +2 -2
- package/dist/agent/modes.d.ts.map +1 -1
- package/dist/agent/modes.js +10 -3
- package/dist/agent/modes.js.map +1 -1
- package/dist/agent/providers/codex-app-server.d.ts.map +1 -1
- package/dist/agent/providers/codex-app-server.js +1 -3
- package/dist/agent/providers/codex-app-server.js.map +1 -1
- package/dist/agent/providers/google-gemini-cli.js +203 -107
- package/dist/agent/providers/google.js +100 -41
- package/dist/agent/providers/scripted.d.ts.map +1 -1
- package/dist/agent/providers/scripted.js +1 -3
- package/dist/agent/providers/scripted.js.map +1 -1
- package/dist/agent/providers/validation.d.ts.map +1 -1
- package/dist/agent/providers/validation.js +1 -3
- package/dist/agent/providers/validation.js.map +1 -1
- package/dist/agent/providers/vertex.js +203 -107
- package/dist/agent/snapshot-store.d.ts +32 -0
- package/dist/agent/snapshot-store.d.ts.map +1 -0
- package/dist/agent/snapshot-store.js +195 -0
- package/dist/agent/snapshot-store.js.map +1 -0
- package/dist/agent/specialist-profiles.d.ts +36 -0
- package/dist/agent/specialist-profiles.d.ts.map +1 -0
- package/dist/agent/specialist-profiles.js +159 -0
- package/dist/agent/specialist-profiles.js.map +1 -0
- package/dist/agent/subagent-specs.d.ts +4 -1
- package/dist/agent/subagent-specs.d.ts.map +1 -1
- package/dist/agent/subagent-specs.js +81 -8
- package/dist/agent/subagent-specs.js.map +1 -1
- package/dist/agent/swarm/coverage-gate.d.ts +37 -0
- package/dist/agent/swarm/coverage-gate.d.ts.map +1 -0
- package/dist/agent/swarm/coverage-gate.js +48 -0
- package/dist/agent/swarm/coverage-gate.js.map +1 -0
- package/dist/agent/swarm/executor.d.ts +1 -0
- package/dist/agent/swarm/executor.d.ts.map +1 -1
- package/dist/agent/swarm/executor.js +151 -15
- package/dist/agent/swarm/executor.js.map +1 -1
- package/dist/agent/swarm/orchestrator-prompt.d.ts +25 -0
- package/dist/agent/swarm/orchestrator-prompt.d.ts.map +1 -0
- package/dist/agent/swarm/orchestrator-prompt.js +48 -0
- package/dist/agent/swarm/orchestrator-prompt.js.map +1 -0
- package/dist/agent/swarm/plan-parser.d.ts.map +1 -1
- package/dist/agent/swarm/plan-parser.js +27 -2
- package/dist/agent/swarm/plan-parser.js.map +1 -1
- package/dist/agent/swarm/types.d.ts +17 -0
- package/dist/agent/swarm/types.d.ts.map +1 -1
- package/dist/agent/swarm/types.js.map +1 -1
- package/dist/agent/swarm/validation-directive.d.ts +21 -0
- package/dist/agent/swarm/validation-directive.d.ts.map +1 -0
- package/dist/agent/swarm/validation-directive.js +25 -0
- package/dist/agent/swarm/validation-directive.js.map +1 -0
- package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
- package/dist/agent/transport/tool-execution-bridge.js +4 -1
- package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
- package/dist/api/enterprise-routes.d.ts.map +1 -1
- package/dist/api/enterprise-routes.js +87 -10
- package/dist/api/enterprise-routes.js.map +1 -1
- package/dist/api/org-settings-merge.d.ts +12 -0
- package/dist/api/org-settings-merge.d.ts.map +1 -0
- package/dist/api/org-settings-merge.js +38 -0
- package/dist/api/org-settings-merge.js.map +1 -0
- package/dist/api/user-settings-merge.d.ts +16 -0
- package/dist/api/user-settings-merge.d.ts.map +1 -0
- package/dist/api/user-settings-merge.js +37 -0
- package/dist/api/user-settings-merge.js.map +1 -0
- package/dist/app-server/daemon-lifecycle-api.d.ts.map +1 -1
- package/dist/app-server/daemon-lifecycle-api.js +1 -3
- package/dist/app-server/daemon-lifecycle-api.js.map +1 -1
- package/dist/app-server/external-agent-import-api.d.ts.map +1 -1
- package/dist/app-server/external-agent-import-api.js +1 -3
- package/dist/app-server/external-agent-import-api.js.map +1 -1
- package/dist/app-server/network-governance-api.d.ts.map +1 -1
- package/dist/app-server/network-governance-api.js +1 -3
- package/dist/app-server/network-governance-api.js.map +1 -1
- package/dist/app-server/plugin-bundle-api.d.ts.map +1 -1
- package/dist/app-server/plugin-bundle-api.js +1 -3
- package/dist/app-server/plugin-bundle-api.js.map +1 -1
- package/dist/app-server/policy-control-api.d.ts.map +1 -1
- package/dist/app-server/policy-control-api.js +1 -3
- package/dist/app-server/policy-control-api.js.map +1 -1
- package/dist/app-server/protocol-modes-api.d.ts.map +1 -1
- package/dist/app-server/protocol-modes-api.js +1 -3
- package/dist/app-server/protocol-modes-api.js.map +1 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +15 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/a2a.d.ts.map +1 -1
- package/dist/cli/commands/a2a.js +1 -3
- package/dist/cli/commands/a2a.js.map +1 -1
- package/dist/cli/commands/agents.d.ts +4 -0
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +149 -0
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/mission.d.ts +4 -0
- package/dist/cli/commands/mission.d.ts.map +1 -0
- package/dist/cli/commands/mission.js +196 -0
- package/dist/cli/commands/mission.js.map +1 -0
- package/dist/cli/commands/value.d.ts +10 -0
- package/dist/cli/commands/value.d.ts.map +1 -0
- package/dist/cli/commands/value.js +33 -0
- package/dist/cli/commands/value.js.map +1 -0
- package/dist/cli/headless-protocol.d.ts.map +1 -1
- package/dist/cli/headless-protocol.js +1 -3
- package/dist/cli/headless-protocol.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +10 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/system-prompt.d.ts.map +1 -1
- package/dist/cli/system-prompt.js +38 -7
- package/dist/cli/system-prompt.js.map +1 -1
- package/dist/cli-runtime.js +7756 -2800
- package/dist/cli-tui/client-tools/client-tool-controller.d.ts.map +1 -1
- package/dist/cli-tui/client-tools/client-tool-controller.js +1 -3
- package/dist/cli-tui/client-tools/client-tool-controller.js.map +1 -1
- package/dist/cli-tui/commands/undo-handlers.d.ts.map +1 -1
- package/dist/cli-tui/commands/undo-handlers.js +7 -2
- package/dist/cli-tui/commands/undo-handlers.js.map +1 -1
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts +3 -0
- package/dist/cli-tui/tui-renderer/skills-controller.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/skills-controller.js +77 -33
- package/dist/cli-tui/tui-renderer/skills-controller.js.map +1 -1
- package/dist/codex/app-server-client.d.ts.map +1 -1
- package/dist/codex/app-server-client.js +1 -3
- package/dist/codex/app-server-client.js.map +1 -1
- package/dist/codex/compatibility.d.ts.map +1 -1
- package/dist/codex/compatibility.js +1 -3
- package/dist/codex/compatibility.js.map +1 -1
- package/dist/codex/subagent-dispatch-table.d.ts +8 -0
- package/dist/codex/subagent-dispatch-table.d.ts.map +1 -1
- package/dist/codex/subagent-dispatch-table.js +23 -0
- package/dist/codex/subagent-dispatch-table.js.map +1 -1
- package/dist/context/manifest.d.ts.map +1 -1
- package/dist/context/manifest.js +1 -3
- package/dist/context/manifest.js.map +1 -1
- package/dist/conversation/render-model.d.ts +0 -36
- package/dist/conversation/render-model.d.ts.map +1 -1
- package/dist/conversation/render-model.js +1 -3
- package/dist/conversation/render-model.js.map +1 -1
- package/dist/customer-value/ambient-learning.d.ts +75 -0
- package/dist/customer-value/ambient-learning.d.ts.map +1 -0
- package/dist/customer-value/ambient-learning.js +472 -0
- package/dist/customer-value/ambient-learning.js.map +1 -0
- package/dist/customer-value/internal-helpers.d.ts +13 -0
- package/dist/customer-value/internal-helpers.d.ts.map +1 -0
- package/dist/customer-value/internal-helpers.js +70 -0
- package/dist/customer-value/internal-helpers.js.map +1 -0
- package/dist/customer-value/report.d.ts +282 -0
- package/dist/customer-value/report.d.ts.map +1 -0
- package/dist/customer-value/report.js +2085 -0
- package/dist/customer-value/report.js.map +1 -0
- package/dist/db/schema.d.ts +5 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/evalops/agent-bootstrap.d.ts.map +1 -1
- package/dist/evalops/agent-bootstrap.js +1 -3
- package/dist/evalops/agent-bootstrap.js.map +1 -1
- package/dist/evalops/agent-mcp-metadata.d.ts.map +1 -1
- package/dist/evalops/agent-mcp-metadata.js +1 -3
- package/dist/evalops/agent-mcp-metadata.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/installers/maestro-review-workflow.d.ts +38 -0
- package/dist/installers/maestro-review-workflow.d.ts.map +1 -0
- package/dist/installers/maestro-review-workflow.js +163 -0
- package/dist/installers/maestro-review-workflow.js.map +1 -0
- package/dist/load-env.d.ts.map +1 -1
- package/dist/load-env.js +2 -1
- package/dist/load-env.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +92 -3
- package/dist/main.js.map +1 -1
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +1 -3
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/elicitation.d.ts.map +1 -1
- package/dist/mcp/elicitation.js +1 -3
- package/dist/mcp/elicitation.js.map +1 -1
- package/dist/mcp/official-registry.d.ts.map +1 -1
- package/dist/mcp/official-registry.js +1 -3
- package/dist/mcp/official-registry.js.map +1 -1
- package/dist/mcp/workspace-trust.d.ts.map +1 -1
- package/dist/mcp/workspace-trust.js +1 -3
- package/dist/mcp/workspace-trust.js.map +1 -1
- package/dist/memory/service-client.d.ts.map +1 -1
- package/dist/memory/service-client.js +1 -3
- package/dist/memory/service-client.js.map +1 -1
- package/dist/models/config-loader.d.ts.map +1 -1
- package/dist/models/config-loader.js +1 -3
- package/dist/models/config-loader.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts +1 -0
- package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/index.js +1 -0
- package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts +61 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.d.ts.map +1 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js +183 -0
- package/dist/node_modules/@evalops/contracts/dist/maestro-settings.js.map +1 -0
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/node_modules/@evalops/tui/package.json +1 -1
- package/dist/oauth/connectors.d.ts.map +1 -1
- package/dist/oauth/connectors.js +1 -3
- package/dist/oauth/connectors.js.map +1 -1
- package/dist/oauth/evalops.d.ts.map +1 -1
- package/dist/oauth/evalops.js +1 -3
- package/dist/oauth/evalops.js.map +1 -1
- package/dist/platform/a2a-client.d.ts.map +1 -1
- package/dist/platform/a2a-client.js +1 -3
- package/dist/platform/a2a-client.js.map +1 -1
- package/dist/platform/a2a-cockpit.d.ts +1 -0
- package/dist/platform/a2a-cockpit.d.ts.map +1 -1
- package/dist/platform/a2a-cockpit.js +42 -11
- package/dist/platform/a2a-cockpit.js.map +1 -1
- package/dist/platform/a2a-completion-audit.d.ts +1 -1
- package/dist/platform/a2a-completion-audit.d.ts.map +1 -1
- package/dist/platform/a2a-completion-audit.js +7 -11
- package/dist/platform/a2a-completion-audit.js.map +1 -1
- package/dist/platform/a2a-maestro-peer.js +16 -0
- package/dist/platform/a2a-maestro-peer.js.map +1 -1
- package/dist/platform/a2a-peer-pairing.d.ts.map +1 -1
- package/dist/platform/a2a-peer-pairing.js +1 -3
- package/dist/platform/a2a-peer-pairing.js.map +1 -1
- package/dist/platform/a2a-peer-registry.d.ts.map +1 -1
- package/dist/platform/a2a-peer-registry.js +1 -3
- package/dist/platform/a2a-peer-registry.js.map +1 -1
- package/dist/platform/a2a-task-ledger.d.ts +20 -0
- package/dist/platform/a2a-task-ledger.d.ts.map +1 -1
- package/dist/platform/a2a-task-ledger.js +207 -11
- package/dist/platform/a2a-task-ledger.js.map +1 -1
- package/dist/platform/a2a-work-graph.d.ts.map +1 -1
- package/dist/platform/a2a-work-graph.js +1 -3
- package/dist/platform/a2a-work-graph.js.map +1 -1
- package/dist/platform/operating-layer.d.ts.map +1 -1
- package/dist/platform/operating-layer.js +14 -8
- package/dist/platform/operating-layer.js.map +1 -1
- package/dist/platform/tool-execution-client.d.ts.map +1 -1
- package/dist/platform/tool-execution-client.js +19 -2
- package/dist/platform/tool-execution-client.js.map +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +1 -3
- package/dist/providers/auth.js.map +1 -1
- package/dist/runtime/env.d.ts +9 -1
- package/dist/runtime/env.d.ts.map +1 -1
- package/dist/runtime/env.js +63 -1
- package/dist/runtime/env.js.map +1 -1
- package/dist/safety/policy.d.ts.map +1 -1
- package/dist/safety/policy.js +1 -4
- package/dist/safety/policy.js.map +1 -1
- package/dist/sandbox/docker-sandbox.d.ts.map +1 -1
- package/dist/sandbox/docker-sandbox.js +6 -1
- package/dist/sandbox/docker-sandbox.js.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
- package/dist/server/handlers/hosted-runner-drain.js +1 -3
- package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
- package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -1
- package/dist/server/handlers/platform-a2a-push.js +53 -2
- package/dist/server/handlers/platform-a2a-push.js.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.d.ts.map +1 -1
- package/dist/server/handlers/runtime-app-server-ws.js +1 -3
- package/dist/server/handlers/runtime-app-server-ws.js.map +1 -1
- package/dist/server/headless-runtime-service.d.ts +16 -0
- package/dist/server/headless-runtime-service.d.ts.map +1 -1
- package/dist/server/headless-runtime-service.js +232 -206
- package/dist/server/headless-runtime-service.js.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -1
- package/dist/server/hosted-agent-runtime-progress.js +12 -3
- package/dist/server/hosted-agent-runtime-progress.js.map +1 -1
- package/dist/server/pending-request-payload.d.ts.map +1 -1
- package/dist/server/pending-request-payload.js +1 -3
- package/dist/server/pending-request-payload.js.map +1 -1
- package/dist/server/route-auth.d.ts.map +1 -1
- package/dist/server/route-auth.js +2 -0
- package/dist/server/route-auth.js.map +1 -1
- package/dist/server/session-serialization.d.ts.map +1 -1
- package/dist/server/session-serialization.js +1 -3
- package/dist/server/session-serialization.js.map +1 -1
- package/dist/services/compliance/normalize.d.ts.map +1 -1
- package/dist/services/compliance/normalize.js +1 -3
- package/dist/services/compliance/normalize.js.map +1 -1
- package/dist/services/intelligent-router/normalize.d.ts.map +1 -1
- package/dist/services/intelligent-router/normalize.js +1 -3
- package/dist/services/intelligent-router/normalize.js.map +1 -1
- package/dist/services/revenue-attribution/normalize.d.ts.map +1 -1
- package/dist/services/revenue-attribution/normalize.js +1 -3
- package/dist/services/revenue-attribution/normalize.js.map +1 -1
- package/dist/services/traces/normalize.d.ts.map +1 -1
- package/dist/services/traces/normalize.js +1 -3
- package/dist/services/traces/normalize.js.map +1 -1
- package/dist/services/workspace-config/normalize.d.ts.map +1 -1
- package/dist/services/workspace-config/normalize.js +1 -3
- package/dist/services/workspace-config/normalize.js.map +1 -1
- package/dist/skills/composer.d.ts.map +1 -1
- package/dist/skills/composer.js +13 -1
- package/dist/skills/composer.js.map +1 -1
- package/dist/skills/index.d.ts +1 -0
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -0
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/learned-guidelines.d.ts +33 -0
- package/dist/skills/learned-guidelines.d.ts.map +1 -0
- package/dist/skills/learned-guidelines.js +291 -0
- package/dist/skills/learned-guidelines.js.map +1 -0
- package/dist/skills/linter.d.ts.map +1 -1
- package/dist/skills/linter.js +1 -3
- package/dist/skills/linter.js.map +1 -1
- package/dist/skills/runtime-activation.d.ts +1 -0
- package/dist/skills/runtime-activation.d.ts.map +1 -1
- package/dist/skills/runtime-activation.js +2 -3
- package/dist/skills/runtime-activation.js.map +1 -1
- package/dist/skills/tool.d.ts.map +1 -1
- package/dist/skills/tool.js +26 -21
- package/dist/skills/tool.js.map +1 -1
- package/dist/skills/trust-cache.d.ts +7 -0
- package/dist/skills/trust-cache.d.ts.map +1 -1
- package/dist/skills/trust-cache.js +16 -0
- package/dist/skills/trust-cache.js.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.d.ts.map +1 -1
- package/dist/telemetry/agent-workforce-native-event.js +1 -3
- package/dist/telemetry/agent-workforce-native-event.js.map +1 -1
- package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
- package/dist/telemetry/maestro-event-bus.js +42 -81
- package/dist/telemetry/maestro-event-bus.js.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
- package/dist/telemetry/maestro-platform-replay-fixture.js +1 -3
- package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +54 -43
- package/dist/telemetry.js.map +1 -1
- package/dist/theme/theme-loader.d.ts.map +1 -1
- package/dist/theme/theme-loader.js +1 -3
- package/dist/theme/theme-loader.js.map +1 -1
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +76 -8
- package/dist/tools/apply-patch.js.map +1 -1
- package/dist/tools/diff-preview.d.ts.map +1 -1
- package/dist/tools/diff-preview.js +10 -1
- package/dist/tools/diff-preview.js.map +1 -1
- package/dist/tools/edit.d.ts.map +1 -1
- package/dist/tools/edit.js +17 -0
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/write.d.ts.map +1 -1
- package/dist/tools/write.js +9 -0
- package/dist/tools/write.js.map +1 -1
- package/dist/undo/tracker.d.ts +5 -0
- package/dist/undo/tracker.d.ts.map +1 -1
- package/dist/undo/tracker.js +13 -0
- package/dist/undo/tracker.js.map +1 -1
- package/dist/utils/fs.d.ts +1 -1
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +29 -2
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/git-stash.d.ts.map +1 -1
- package/dist/utils/git-stash.js +15 -8
- package/dist/utils/git-stash.js.map +1 -1
- package/dist/utils/json.d.ts +11 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +9 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/shell-env.d.ts.map +1 -1
- package/dist/utils/shell-env.js +2 -0
- package/dist/utils/shell-env.js.map +1 -1
- package/dist/utils/url-extractor-git.d.ts +26 -0
- package/dist/utils/url-extractor-git.d.ts.map +1 -0
- package/dist/utils/url-extractor-git.js +259 -0
- package/dist/utils/url-extractor-git.js.map +1 -0
- package/dist/utils/url-extractor.d.ts.map +1 -1
- package/dist/utils/url-extractor.js +23 -251
- package/dist/utils/url-extractor.js.map +1 -1
- package/dist/version.json +2 -2
- package/package.json +310 -306
- package/skills/incident-triage/SKILL.md +19 -1
- package/skills/install-code-review/SKILL.md +69 -0
- package/skills/security-review/SKILL.md +68 -0
- package/skills/security-review/reference/rubric.md +85 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-env.js","sourceRoot":"","sources":["../../src/utils/shell-env.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shell Environment Policy - Filtered environment for user-command execution\n *\n * Applies a configurable policy to the process environment before passing it\n * to shell-based tools (bash/background tasks/sandboxed exec).\n *\n * By default, variables containing KEY/SECRET/TOKEN are excluded to reduce\n * accidental credential leakage into arbitrary commands. Use\n * `shell_environment_policy.ignore_default_excludes = true` to opt out.\n */\n\nimport { minimatch } from \"minimatch\";\nimport { type ShellEnvironmentPolicy, loadConfig } from \"../config/index.js\";\n\nconst CORE_ENV_VARS = [\n\t\"HOME\",\n\t\"LOGNAME\",\n\t\"PATH\",\n\t\"SHELL\",\n\t\"USER\",\n\t\"USERNAME\",\n\t\"TMPDIR\",\n\t\"TEMP\",\n\t\"TMP\",\n];\n\n/**\n * Default denylist of env-var name patterns that almost always carry\n * credentials. This is a defense-in-depth pattern — not a complete\n * secret blocker (denylists never are). Operators handling untrusted\n * code should set `shell_environment_policy.inherit = \"core\"` plus an\n * explicit `include_only` allowlist; see SECURITY.md.\n *\n * Widened in #2471 from the original 3-pattern list (`KEY`, `SECRET`,\n * `TOKEN`) to also cover:\n *\n * - common credential nouns (`PASSWORD`, `PASSWD`, `CREDENTIAL`,\n * `PRIVATE`, `PAT`, `AUTH`, `SESSION`)\n * - DSN/connection-string vars whose value embeds creds even when\n * the name doesn't (`DATABASE_URL`, `*_DSN`, `CONNECTION_STRING`)\n * - common provider prefixes that hold long-lived creds\n * (`AWS_*`, `AZURE_*`, `GCP_*`, `GOOGLE_*`, `OPENAI_*`,\n * `ANTHROPIC_*`, `GH_*`, `GITHUB_*`, `STRIPE_*`, `TWILIO_*`,\n * `SLACK_*`, `OP_*` for 1Password CLI)\n */\nconst DEFAULT_EXCLUDES = [\n\t// Original triad — broad credential nouns\n\t\"*KEY*\",\n\t\"*SECRET*\",\n\t\"*TOKEN*\",\n\t// Additional credential nouns (#2471)\n\t\"*PASSWORD*\",\n\t\"*PASSWD*\",\n\t\"*CREDENTIAL*\",\n\t\"*PRIVATE*\",\n\t\"*_PAT\", // GITHUB_PAT, GH_PAT, etc. (tighter than *PAT* which would catch PATH)\n\t\"PAT_*\",\n\t\"*_AUTH\",\n\t\"*_AUTH_*\",\n\t\"AUTH_*\",\n\t// DSN / connection-string env vars — name doesn't say \"secret\"\n\t// but the value embeds inline creds.\n\t\"DATABASE_URL\",\n\t\"*_DATABASE_URL\",\n\t\"DB_URL\",\n\t\"*_DB_URL\",\n\t\"*_DSN\",\n\t\"CONNECTION_STRING\",\n\t\"*_CONNECTION_STRING\",\n\t// Provider prefixes whose * is almost always a credential. We\n\t// deliberately exclude GITHUB_*/GH_* here because CI commonly\n\t// sets non-secret vars (`GITHUB_REPOSITORY`, `GH_PAGER`) under\n\t// these prefixes; the secret-shaped ones still get caught by\n\t// *TOKEN*/*_PAT/*KEY*.\n\t\"AWS_*\",\n\t\"AZURE_*\",\n\t\"GCP_*\",\n\t\"OPENAI_*\",\n\t\"ANTHROPIC_*\",\n\t\"STRIPE_*\",\n\t\"TWILIO_*\",\n\t\"SLACK_*\",\n\t\"OP_*\", // 1Password CLI session vars\n];\nconst PLATFORM_WORKER_SURFACE = \"platform-agent-runtime\";\nconst PLATFORM_TRUSTED_TOOL_ENV_FLAG = \"MAESTRO_PLATFORM_TRUSTED_TOOL_ENV\";\nconst PLATFORM_TRUSTED_TOOL_ENV_ALLOWLIST = [\n\t\"CODEX_WORKER_GIT_USERNAME\",\n\t\"GIT_ASKPASS\",\n\t\"GIT_TERMINAL_PROMPT\",\n\t\"MAESTRO_PLATFORM_A2A_ENABLED\",\n\t\"MAESTRO_AGENT_RUNTIME_A2A_ENABLED\",\n\t\"MAESTRO_PLATFORM_A2A_EXTENSIONS\",\n\t\"MAESTRO_AGENT_RUNTIME_SERVICE_URL\",\n\t\"MAESTRO_PLATFORM_A2A_URL\",\n\t\"MAESTRO_AGENT_REGISTRY_SERVICE_URL\",\n\t\"MAESTRO_AGENT_RUNTIME_ORG_ID\",\n\t\"MAESTRO_AGENT_RUNTIME_WORKSPACE_ID\",\n];\n\nexport interface ResolveShellEnvironmentOptions {\n\tbaseEnv?: NodeJS.ProcessEnv;\n\tworkspaceDir?: string;\n\tpolicy?: ShellEnvironmentPolicy;\n}\n\nfunction matchesAny(name: string, patterns: string[]): boolean {\n\treturn patterns.some((pattern) =>\n\t\tminimatch(name, pattern, { nocase: true, dot: true }),\n\t);\n}\n\nfunction coerceEnv(env: NodeJS.ProcessEnv): Record<string, string> {\n\tconst result: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(env)) {\n\t\tif (typeof value === \"string\") {\n\t\t\tresult[key] = value;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction isTruthyEnv(value?: string): boolean {\n\tif (!value) {\n\t\treturn false;\n\t}\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value.toLowerCase());\n}\n\nfunction restorePlatformTrustedToolEnv(\n\tenv: Record<string, string>,\n\tbase: Record<string, string>,\n\tpolicy: ShellEnvironmentPolicy,\n): void {\n\tif (base.MAESTRO_SURFACE !== PLATFORM_WORKER_SURFACE) {\n\t\treturn;\n\t}\n\tif (!isTruthyEnv(base[PLATFORM_TRUSTED_TOOL_ENV_FLAG])) {\n\t\treturn;\n\t}\n\tconst inherit = policy.inherit ?? \"all\";\n\tconst coreSet = new Set(CORE_ENV_VARS.map((name) => name.toUpperCase()));\n\tfor (const key of PLATFORM_TRUSTED_TOOL_ENV_ALLOWLIST) {\n\t\tif (inherit === \"none\") {\n\t\t\tcontinue;\n\t\t}\n\t\tif (inherit === \"core\" && !coreSet.has(key.toUpperCase())) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (policy.exclude?.length && matchesAny(key, policy.exclude)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (policy.include_only?.length && !matchesAny(key, policy.include_only)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (policy.set && Object.prototype.hasOwnProperty.call(policy.set, key)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = base[key];\n\t\tif (typeof value === \"string\") {\n\t\t\tenv[key] = value;\n\t\t}\n\t}\n}\n\n/**\n * Apply a ShellEnvironmentPolicy to a base environment map.\n */\nexport function applyShellEnvironmentPolicy(\n\tbaseEnv: NodeJS.ProcessEnv,\n\tpolicy?: ShellEnvironmentPolicy,\n): Record<string, string> {\n\tconst resolvedPolicy: ShellEnvironmentPolicy = policy ?? {\n\t\tinherit: \"all\",\n\t\tignore_default_excludes: false,\n\t};\n\tconst inherit = resolvedPolicy.inherit ?? \"all\";\n\tconst ignoreDefaultExcludes = resolvedPolicy.ignore_default_excludes ?? false;\n\n\tconst base = coerceEnv(baseEnv);\n\tlet env: Record<string, string> = {};\n\n\tif (inherit === \"core\") {\n\t\tconst coreSet = new Set(CORE_ENV_VARS.map((name) => name.toUpperCase()));\n\t\tfor (const [key, value] of Object.entries(base)) {\n\t\t\tif (coreSet.has(key.toUpperCase())) {\n\t\t\t\tenv[key] = value;\n\t\t\t}\n\t\t}\n\t} else if (inherit === \"none\") {\n\t\tenv = {};\n\t} else {\n\t\tenv = { ...base };\n\t}\n\n\tif (!ignoreDefaultExcludes) {\n\t\tfor (const key of Object.keys(env)) {\n\t\t\tif (matchesAny(key, DEFAULT_EXCLUDES)) {\n\t\t\t\tdelete env[key];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (resolvedPolicy.exclude?.length) {\n\t\tfor (const key of Object.keys(env)) {\n\t\t\tif (matchesAny(key, resolvedPolicy.exclude)) {\n\t\t\t\tdelete env[key];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (resolvedPolicy.set) {\n\t\tfor (const [key, value] of Object.entries(resolvedPolicy.set)) {\n\t\t\tenv[key] = value;\n\t\t}\n\t}\n\n\tif (resolvedPolicy.include_only?.length) {\n\t\tfor (const key of Object.keys(env)) {\n\t\t\tif (!matchesAny(key, resolvedPolicy.include_only)) {\n\t\t\t\tdelete env[key];\n\t\t\t}\n\t\t}\n\t}\n\n\trestorePlatformTrustedToolEnv(env, base, resolvedPolicy);\n\n\treturn env;\n}\n\n/**\n * Resolve the effective shell environment for a command.\n *\n * Applies config policy, then merges explicit overrides (always win).\n */\nexport function resolveShellEnvironment(\n\toverrides?: Record<string, string | undefined>,\n\toptions: ResolveShellEnvironmentOptions = {},\n): Record<string, string> {\n\tconst workspaceDir = options.workspaceDir ?? process.cwd();\n\tconst configPolicy =\n\t\toptions.policy ?? loadConfig(workspaceDir).shell_environment_policy;\n\tconst env = applyShellEnvironmentPolicy(\n\t\toptions.baseEnv ?? process.env,\n\t\tconfigPolicy,\n\t);\n\tif (overrides) {\n\t\tfor (const [key, value] of Object.entries(overrides)) {\n\t\t\tif (typeof value === \"string\") {\n\t\t\t\tenv[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn env;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"shell-env.js","sourceRoot":"","sources":["../../src/utils/shell-env.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Shell Environment Policy - Filtered environment for user-command execution\n *\n * Applies a configurable policy to the process environment before passing it\n * to shell-based tools (bash/background tasks/sandboxed exec).\n *\n * By default, variables containing KEY/SECRET/TOKEN are excluded to reduce\n * accidental credential leakage into arbitrary commands. Use\n * `shell_environment_policy.ignore_default_excludes = true` to opt out.\n */\n\nimport { minimatch } from \"minimatch\";\nimport { type ShellEnvironmentPolicy, loadConfig } from \"../config/index.js\";\n\nconst CORE_ENV_VARS = [\n\t\"HOME\",\n\t\"LOGNAME\",\n\t\"PATH\",\n\t\"SHELL\",\n\t\"USER\",\n\t\"USERNAME\",\n\t\"TMPDIR\",\n\t\"TEMP\",\n\t\"TMP\",\n];\n\n/**\n * Default denylist of env-var name patterns that almost always carry\n * credentials. This is a defense-in-depth pattern — not a complete\n * secret blocker (denylists never are). Operators handling untrusted\n * code should set `shell_environment_policy.inherit = \"core\"` plus an\n * explicit `include_only` allowlist; see SECURITY.md.\n *\n * Widened in #2471 from the original 3-pattern list (`KEY`, `SECRET`,\n * `TOKEN`) to also cover:\n *\n * - common credential nouns (`PASSWORD`, `PASSWD`, `CREDENTIAL`,\n * `PRIVATE`, `PAT`, `AUTH`, `SESSION`)\n * - DSN/connection-string vars whose value embeds creds even when\n * the name doesn't (`DATABASE_URL`, `*_DSN`, `CONNECTION_STRING`)\n * - common provider prefixes that hold long-lived creds\n * (`AWS_*`, `AZURE_*`, `GCP_*`, `GOOGLE_*`, `OPENAI_*`,\n * `ANTHROPIC_*`, `GH_*`, `GITHUB_*`, `STRIPE_*`, `TWILIO_*`,\n * `SLACK_*`, `OP_*` for 1Password CLI)\n */\nconst DEFAULT_EXCLUDES = [\n\t// Original triad — broad credential nouns\n\t\"*KEY*\",\n\t\"*SECRET*\",\n\t\"*TOKEN*\",\n\t// Additional credential nouns (#2471)\n\t\"*PASSWORD*\",\n\t\"*PASSWD*\",\n\t\"*CREDENTIAL*\",\n\t\"*PRIVATE*\",\n\t\"*_PAT\", // GITHUB_PAT, GH_PAT, etc. (tighter than *PAT* which would catch PATH)\n\t\"PAT_*\",\n\t\"*_AUTH\",\n\t\"*_AUTH_*\",\n\t\"AUTH_*\",\n\t// DSN / connection-string env vars — name doesn't say \"secret\"\n\t// but the value embeds inline creds.\n\t\"DATABASE_URL\",\n\t\"*_DATABASE_URL\",\n\t\"DB_URL\",\n\t\"*_DB_URL\",\n\t\"*_DSN\",\n\t\"CONNECTION_STRING\",\n\t\"*_CONNECTION_STRING\",\n\t// Provider prefixes whose * is almost always a credential. We\n\t// deliberately exclude GITHUB_*/GH_* here because CI commonly\n\t// sets non-secret vars (`GITHUB_REPOSITORY`, `GH_PAGER`) under\n\t// these prefixes; the secret-shaped ones still get caught by\n\t// *TOKEN*/*_PAT/*KEY*.\n\t\"AWS_*\",\n\t\"AZURE_*\",\n\t\"GCP_*\",\n\t\"OPENAI_*\",\n\t\"ANTHROPIC_*\",\n\t\"STRIPE_*\",\n\t\"TWILIO_*\",\n\t\"SLACK_*\",\n\t\"OP_*\", // 1Password CLI session vars\n];\nconst PLATFORM_WORKER_SURFACE = \"platform-agent-runtime\";\nconst PLATFORM_TRUSTED_TOOL_ENV_FLAG = \"MAESTRO_PLATFORM_TRUSTED_TOOL_ENV\";\nconst PLATFORM_TRUSTED_TOOL_ENV_ALLOWLIST = [\n\t\"CODEX_WORKER_GIT_USERNAME\",\n\t\"GIT_ASKPASS\",\n\t\"GIT_TERMINAL_PROMPT\",\n\t\"MAESTRO_PLATFORM_A2A_ENABLED\",\n\t\"MAESTRO_AGENT_RUNTIME_A2A_ENABLED\",\n\t\"MAESTRO_PLATFORM_A2A_EXTENSIONS\",\n\t\"MAESTRO_AGENT_RUNTIME_SERVICE_URL\",\n\t\"MAESTRO_PLATFORM_A2A_URL\",\n\t\"MAESTRO_AGENT_REGISTRY_SERVICE_URL\",\n\t\"MAESTRO_AGENT_RUNTIME_ORG_ID\",\n\t\"MAESTRO_AGENT_RUNTIME_WORKSPACE_ID\",\n\t\"MAESTRO_OBJECTIVE_ID\",\n\t\"MAESTRO_EVALOPS_OBJECTIVE_ID\",\n];\n\nexport interface ResolveShellEnvironmentOptions {\n\tbaseEnv?: NodeJS.ProcessEnv;\n\tworkspaceDir?: string;\n\tpolicy?: ShellEnvironmentPolicy;\n}\n\nfunction matchesAny(name: string, patterns: string[]): boolean {\n\treturn patterns.some((pattern) =>\n\t\tminimatch(name, pattern, { nocase: true, dot: true }),\n\t);\n}\n\nfunction coerceEnv(env: NodeJS.ProcessEnv): Record<string, string> {\n\tconst result: Record<string, string> = {};\n\tfor (const [key, value] of Object.entries(env)) {\n\t\tif (typeof value === \"string\") {\n\t\t\tresult[key] = value;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction isTruthyEnv(value?: string): boolean {\n\tif (!value) {\n\t\treturn false;\n\t}\n\treturn [\"1\", \"true\", \"yes\", \"on\"].includes(value.toLowerCase());\n}\n\nfunction restorePlatformTrustedToolEnv(\n\tenv: Record<string, string>,\n\tbase: Record<string, string>,\n\tpolicy: ShellEnvironmentPolicy,\n): void {\n\tif (base.MAESTRO_SURFACE !== PLATFORM_WORKER_SURFACE) {\n\t\treturn;\n\t}\n\tif (!isTruthyEnv(base[PLATFORM_TRUSTED_TOOL_ENV_FLAG])) {\n\t\treturn;\n\t}\n\tconst inherit = policy.inherit ?? \"all\";\n\tconst coreSet = new Set(CORE_ENV_VARS.map((name) => name.toUpperCase()));\n\tfor (const key of PLATFORM_TRUSTED_TOOL_ENV_ALLOWLIST) {\n\t\tif (inherit === \"none\") {\n\t\t\tcontinue;\n\t\t}\n\t\tif (inherit === \"core\" && !coreSet.has(key.toUpperCase())) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (policy.exclude?.length && matchesAny(key, policy.exclude)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (policy.include_only?.length && !matchesAny(key, policy.include_only)) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (policy.set && Object.prototype.hasOwnProperty.call(policy.set, key)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = base[key];\n\t\tif (typeof value === \"string\") {\n\t\t\tenv[key] = value;\n\t\t}\n\t}\n}\n\n/**\n * Apply a ShellEnvironmentPolicy to a base environment map.\n */\nexport function applyShellEnvironmentPolicy(\n\tbaseEnv: NodeJS.ProcessEnv,\n\tpolicy?: ShellEnvironmentPolicy,\n): Record<string, string> {\n\tconst resolvedPolicy: ShellEnvironmentPolicy = policy ?? {\n\t\tinherit: \"all\",\n\t\tignore_default_excludes: false,\n\t};\n\tconst inherit = resolvedPolicy.inherit ?? \"all\";\n\tconst ignoreDefaultExcludes = resolvedPolicy.ignore_default_excludes ?? false;\n\n\tconst base = coerceEnv(baseEnv);\n\tlet env: Record<string, string> = {};\n\n\tif (inherit === \"core\") {\n\t\tconst coreSet = new Set(CORE_ENV_VARS.map((name) => name.toUpperCase()));\n\t\tfor (const [key, value] of Object.entries(base)) {\n\t\t\tif (coreSet.has(key.toUpperCase())) {\n\t\t\t\tenv[key] = value;\n\t\t\t}\n\t\t}\n\t} else if (inherit === \"none\") {\n\t\tenv = {};\n\t} else {\n\t\tenv = { ...base };\n\t}\n\n\tif (!ignoreDefaultExcludes) {\n\t\tfor (const key of Object.keys(env)) {\n\t\t\tif (matchesAny(key, DEFAULT_EXCLUDES)) {\n\t\t\t\tdelete env[key];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (resolvedPolicy.exclude?.length) {\n\t\tfor (const key of Object.keys(env)) {\n\t\t\tif (matchesAny(key, resolvedPolicy.exclude)) {\n\t\t\t\tdelete env[key];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (resolvedPolicy.set) {\n\t\tfor (const [key, value] of Object.entries(resolvedPolicy.set)) {\n\t\t\tenv[key] = value;\n\t\t}\n\t}\n\n\tif (resolvedPolicy.include_only?.length) {\n\t\tfor (const key of Object.keys(env)) {\n\t\t\tif (!matchesAny(key, resolvedPolicy.include_only)) {\n\t\t\t\tdelete env[key];\n\t\t\t}\n\t\t}\n\t}\n\n\trestorePlatformTrustedToolEnv(env, base, resolvedPolicy);\n\n\treturn env;\n}\n\n/**\n * Resolve the effective shell environment for a command.\n *\n * Applies config policy, then merges explicit overrides (always win).\n */\nexport function resolveShellEnvironment(\n\toverrides?: Record<string, string | undefined>,\n\toptions: ResolveShellEnvironmentOptions = {},\n): Record<string, string> {\n\tconst workspaceDir = options.workspaceDir ?? process.cwd();\n\tconst configPolicy =\n\t\toptions.policy ?? loadConfig(workspaceDir).shell_environment_policy;\n\tconst env = applyShellEnvironmentPolicy(\n\t\toptions.baseEnv ?? process.env,\n\t\tconfigPolicy,\n\t);\n\tif (overrides) {\n\t\tfor (const [key, value] of Object.entries(overrides)) {\n\t\t\tif (typeof value === \"string\") {\n\t\t\t\tenv[key] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn env;\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git command parsing for URL extraction.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from url-extractor.ts to isolate the git-command sub-domain
|
|
5
|
+
* (parsing `git clone|remote|config|submodule|archive ...` invocations into
|
|
6
|
+
* their network-relevant target args, and detecting local vs remote targets).
|
|
7
|
+
*
|
|
8
|
+
* Self-contained: depends only on its own constants + stdlib. url-extractor.ts
|
|
9
|
+
* imports the entry points back. One-way runtime dependency (no cycle).
|
|
10
|
+
*/
|
|
11
|
+
export declare const GIT_GLOBAL_FLAGS_WITH_VALUES: Set<string>;
|
|
12
|
+
export declare const GIT_CLONE_FLAGS_WITH_VALUES: Set<string>;
|
|
13
|
+
export declare function isLocalGitTarget(value: string): boolean;
|
|
14
|
+
export declare function gitCloneNonFlagArgs(args: string[]): string[];
|
|
15
|
+
export declare function gitRemoteTargetArgs(args: string[]): string[];
|
|
16
|
+
export declare function gitConfigTargetArgs(args: string[]): string[];
|
|
17
|
+
export declare function gitConfigCommandIsLocal(args: string[]): boolean;
|
|
18
|
+
export declare function gitRemoteCommandIsLocal(args: string[]): boolean;
|
|
19
|
+
export declare function gitSubmoduleTargetArgs(args: string[]): string[];
|
|
20
|
+
export declare function gitSubmoduleCommandIsLocal(args: string[]): boolean;
|
|
21
|
+
export declare function gitArchiveTargetArgs(args: string[]): string[];
|
|
22
|
+
export declare function gitSubcommandInvocation(args: string[]): {
|
|
23
|
+
subcommand: string;
|
|
24
|
+
args: string[];
|
|
25
|
+
} | null;
|
|
26
|
+
//# sourceMappingURL=url-extractor-git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-extractor-git.d.ts","sourceRoot":"","sources":["../../src/utils/url-extractor-git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH,eAAO,MAAM,4BAA4B,aASvC,CAAC;AAEH,eAAO,MAAM,2BAA2B,aAqBtC,CAAC;AAgDH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAWvD;AAmCD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAa5D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAsB5D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAE/D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAa/D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAU/D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAIlE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAmB7D;AAsCD,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,MAAM,EAAE,GACZ;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAmB/C"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Git command parsing for URL extraction.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from url-extractor.ts to isolate the git-command sub-domain
|
|
5
|
+
* (parsing `git clone|remote|config|submodule|archive ...` invocations into
|
|
6
|
+
* their network-relevant target args, and detecting local vs remote targets).
|
|
7
|
+
*
|
|
8
|
+
* Self-contained: depends only on its own constants + stdlib. url-extractor.ts
|
|
9
|
+
* imports the entry points back. One-way runtime dependency (no cycle).
|
|
10
|
+
*/
|
|
11
|
+
const NETWORK_GIT_SUBCOMMANDS = new Set([
|
|
12
|
+
"archive",
|
|
13
|
+
"clone",
|
|
14
|
+
"config",
|
|
15
|
+
"fetch",
|
|
16
|
+
"ls-remote",
|
|
17
|
+
"pull",
|
|
18
|
+
"push",
|
|
19
|
+
"remote",
|
|
20
|
+
"submodule",
|
|
21
|
+
]);
|
|
22
|
+
const GIT_NESTED_SUBCOMMAND_WRAPPERS = new Set(["lfs", "svn"]);
|
|
23
|
+
export const GIT_GLOBAL_FLAGS_WITH_VALUES = new Set([
|
|
24
|
+
"-C",
|
|
25
|
+
"-c",
|
|
26
|
+
"--config-env",
|
|
27
|
+
"--exec-path",
|
|
28
|
+
"--git-dir",
|
|
29
|
+
"--namespace",
|
|
30
|
+
"--super-prefix",
|
|
31
|
+
"--work-tree",
|
|
32
|
+
]);
|
|
33
|
+
export const GIT_CLONE_FLAGS_WITH_VALUES = new Set([
|
|
34
|
+
"-b",
|
|
35
|
+
"--branch",
|
|
36
|
+
"-c",
|
|
37
|
+
"--config",
|
|
38
|
+
"--bundle-uri",
|
|
39
|
+
"--depth",
|
|
40
|
+
"--filter",
|
|
41
|
+
"-j",
|
|
42
|
+
"--jobs",
|
|
43
|
+
"-o",
|
|
44
|
+
"--origin",
|
|
45
|
+
"--reference",
|
|
46
|
+
"--reference-if-able",
|
|
47
|
+
"--separate-git-dir",
|
|
48
|
+
"--server-option",
|
|
49
|
+
"--shallow-exclude",
|
|
50
|
+
"--shallow-since",
|
|
51
|
+
"--template",
|
|
52
|
+
"-u",
|
|
53
|
+
"--upload-pack",
|
|
54
|
+
]);
|
|
55
|
+
const GIT_REMOTE_ADD_FLAGS_WITH_VALUES = new Set([
|
|
56
|
+
"-m",
|
|
57
|
+
"--master",
|
|
58
|
+
"-t",
|
|
59
|
+
"--track",
|
|
60
|
+
]);
|
|
61
|
+
const GIT_CONFIG_FLAGS_WITH_VALUES = new Set([
|
|
62
|
+
"-f",
|
|
63
|
+
"--blob",
|
|
64
|
+
"--comment",
|
|
65
|
+
"--default",
|
|
66
|
+
"--file",
|
|
67
|
+
"--fixed-value",
|
|
68
|
+
"--type",
|
|
69
|
+
"--value",
|
|
70
|
+
]);
|
|
71
|
+
const GIT_REMOTE_LOCAL_ACTIONS = new Set([
|
|
72
|
+
"get-url",
|
|
73
|
+
"prune",
|
|
74
|
+
"remove",
|
|
75
|
+
"rename",
|
|
76
|
+
"rm",
|
|
77
|
+
"set-branches",
|
|
78
|
+
"set-head",
|
|
79
|
+
]);
|
|
80
|
+
const GIT_SUBMODULE_ADD_FLAGS_WITH_VALUES = new Set([
|
|
81
|
+
"-b",
|
|
82
|
+
"--branch",
|
|
83
|
+
"--depth",
|
|
84
|
+
"--name",
|
|
85
|
+
"--reference",
|
|
86
|
+
]);
|
|
87
|
+
const GIT_SUBMODULE_LOCAL_ACTIONS = new Set([
|
|
88
|
+
"absorbgitdirs",
|
|
89
|
+
"deinit",
|
|
90
|
+
"init",
|
|
91
|
+
"set-branch",
|
|
92
|
+
"status",
|
|
93
|
+
"summary",
|
|
94
|
+
"sync",
|
|
95
|
+
]);
|
|
96
|
+
export function isLocalGitTarget(value) {
|
|
97
|
+
const target = value.trim().replace(/^["']|["']$/g, "");
|
|
98
|
+
return (target === "." ||
|
|
99
|
+
target === ".." ||
|
|
100
|
+
target.startsWith("./") ||
|
|
101
|
+
target.startsWith("../") ||
|
|
102
|
+
target.startsWith("/") ||
|
|
103
|
+
target.startsWith("~/") ||
|
|
104
|
+
target.startsWith("file://"));
|
|
105
|
+
}
|
|
106
|
+
function gitNonFlagArgs(args, flagsWithValues) {
|
|
107
|
+
const values = [];
|
|
108
|
+
let skipNext = false;
|
|
109
|
+
let optionsEnded = false;
|
|
110
|
+
for (const arg of args) {
|
|
111
|
+
if (skipNext) {
|
|
112
|
+
skipNext = false;
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (!optionsEnded && arg === "--") {
|
|
116
|
+
optionsEnded = true;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
if (!optionsEnded && arg.startsWith("-")) {
|
|
120
|
+
const [flag] = arg.split("=", 1);
|
|
121
|
+
if (flag && flagsWithValues.has(flag) && !arg.includes("=")) {
|
|
122
|
+
skipNext = true;
|
|
123
|
+
}
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
values.push(arg);
|
|
127
|
+
}
|
|
128
|
+
return values;
|
|
129
|
+
}
|
|
130
|
+
export function gitCloneNonFlagArgs(args) {
|
|
131
|
+
return gitNonFlagArgs(args, GIT_CLONE_FLAGS_WITH_VALUES);
|
|
132
|
+
}
|
|
133
|
+
export function gitRemoteTargetArgs(args) {
|
|
134
|
+
const targets = gitNonFlagArgs(args, GIT_REMOTE_ADD_FLAGS_WITH_VALUES);
|
|
135
|
+
const action = targets[0]?.toLowerCase();
|
|
136
|
+
if (action === "add") {
|
|
137
|
+
return targets.slice(2, 3);
|
|
138
|
+
}
|
|
139
|
+
if (action === "set-url") {
|
|
140
|
+
return targets.slice(2);
|
|
141
|
+
}
|
|
142
|
+
if (action && !GIT_REMOTE_LOCAL_ACTIONS.has(action)) {
|
|
143
|
+
return targets.slice(0, 1);
|
|
144
|
+
}
|
|
145
|
+
return [];
|
|
146
|
+
}
|
|
147
|
+
export function gitConfigTargetArgs(args) {
|
|
148
|
+
const targets = gitNonFlagArgs(args, GIT_CONFIG_FLAGS_WITH_VALUES);
|
|
149
|
+
const key = targets[0];
|
|
150
|
+
if (!key || targets.length < 2) {
|
|
151
|
+
return [];
|
|
152
|
+
}
|
|
153
|
+
const rewriteTarget = key.match(/^url\.(.+)\.(?:insteadof|pushinsteadof)$/i)?.[1];
|
|
154
|
+
if (rewriteTarget) {
|
|
155
|
+
return [rewriteTarget];
|
|
156
|
+
}
|
|
157
|
+
if (/^remote\..+\.(?:push)?url$/i.test(key) ||
|
|
158
|
+
/^submodule\..+\.url$/i.test(key)) {
|
|
159
|
+
return targets.slice(1, 2);
|
|
160
|
+
}
|
|
161
|
+
return [];
|
|
162
|
+
}
|
|
163
|
+
export function gitConfigCommandIsLocal(args) {
|
|
164
|
+
return gitConfigTargetArgs(args).length === 0;
|
|
165
|
+
}
|
|
166
|
+
export function gitRemoteCommandIsLocal(args) {
|
|
167
|
+
const targets = gitNonFlagArgs(args, GIT_REMOTE_ADD_FLAGS_WITH_VALUES);
|
|
168
|
+
const action = targets[0]?.toLowerCase();
|
|
169
|
+
if (!action || GIT_REMOTE_LOCAL_ACTIONS.has(action)) {
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
if (action === "add") {
|
|
173
|
+
return targets.length < 3;
|
|
174
|
+
}
|
|
175
|
+
if (action === "set-url") {
|
|
176
|
+
return targets.length < 3;
|
|
177
|
+
}
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
export function gitSubmoduleTargetArgs(args) {
|
|
181
|
+
const targets = gitNonFlagArgs(args, GIT_SUBMODULE_ADD_FLAGS_WITH_VALUES);
|
|
182
|
+
const action = targets[0]?.toLowerCase();
|
|
183
|
+
if (!action || GIT_SUBMODULE_LOCAL_ACTIONS.has(action)) {
|
|
184
|
+
return [];
|
|
185
|
+
}
|
|
186
|
+
if (action === "add") {
|
|
187
|
+
return targets.slice(1, 2);
|
|
188
|
+
}
|
|
189
|
+
return targets.slice(0, 1);
|
|
190
|
+
}
|
|
191
|
+
export function gitSubmoduleCommandIsLocal(args) {
|
|
192
|
+
const targets = gitNonFlagArgs(args, GIT_SUBMODULE_ADD_FLAGS_WITH_VALUES);
|
|
193
|
+
const action = targets[0]?.toLowerCase();
|
|
194
|
+
return !action || GIT_SUBMODULE_LOCAL_ACTIONS.has(action);
|
|
195
|
+
}
|
|
196
|
+
export function gitArchiveTargetArgs(args) {
|
|
197
|
+
const targets = [];
|
|
198
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
199
|
+
const arg = args[index];
|
|
200
|
+
if (arg === "--remote" && index + 1 < args.length) {
|
|
201
|
+
targets.push(args[index + 1]);
|
|
202
|
+
index += 1;
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
if (arg.startsWith("--remote=")) {
|
|
206
|
+
const target = arg.slice("--remote=".length);
|
|
207
|
+
if (target) {
|
|
208
|
+
targets.push(target);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return targets;
|
|
213
|
+
}
|
|
214
|
+
function nextGitSubcommandToken(args) {
|
|
215
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
216
|
+
const arg = args[index];
|
|
217
|
+
if (arg === "--") {
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
const [flag] = arg.split("=", 1);
|
|
221
|
+
if (flag &&
|
|
222
|
+
GIT_GLOBAL_FLAGS_WITH_VALUES.has(flag) &&
|
|
223
|
+
!arg.includes("=") &&
|
|
224
|
+
index + 1 < args.length) {
|
|
225
|
+
index += 1;
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
if (arg.startsWith("-c") && arg !== "-c") {
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
if (arg.startsWith("--")) {
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
if (arg.startsWith("-")) {
|
|
235
|
+
continue;
|
|
236
|
+
}
|
|
237
|
+
const subcommand = arg.toLowerCase();
|
|
238
|
+
return { subcommand, args: args.slice(index + 1) };
|
|
239
|
+
}
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
export function gitSubcommandInvocation(args) {
|
|
243
|
+
const invocation = nextGitSubcommandToken(args);
|
|
244
|
+
if (!invocation) {
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
if (NETWORK_GIT_SUBCOMMANDS.has(invocation.subcommand)) {
|
|
248
|
+
return invocation;
|
|
249
|
+
}
|
|
250
|
+
if (!GIT_NESTED_SUBCOMMAND_WRAPPERS.has(invocation.subcommand)) {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
const nestedInvocation = nextGitSubcommandToken(invocation.args);
|
|
254
|
+
return nestedInvocation &&
|
|
255
|
+
NETWORK_GIT_SUBCOMMANDS.has(nestedInvocation.subcommand)
|
|
256
|
+
? nestedInvocation
|
|
257
|
+
: null;
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=url-extractor-git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-extractor-git.js","sourceRoot":"","sources":["../../src/utils/url-extractor-git.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Git command parsing for URL extraction.\n *\n * Extracted from url-extractor.ts to isolate the git-command sub-domain\n * (parsing `git clone|remote|config|submodule|archive ...` invocations into\n * their network-relevant target args, and detecting local vs remote targets).\n *\n * Self-contained: depends only on its own constants + stdlib. url-extractor.ts\n * imports the entry points back. One-way runtime dependency (no cycle).\n */\n\nconst NETWORK_GIT_SUBCOMMANDS = new Set([\n\t\"archive\",\n\t\"clone\",\n\t\"config\",\n\t\"fetch\",\n\t\"ls-remote\",\n\t\"pull\",\n\t\"push\",\n\t\"remote\",\n\t\"submodule\",\n]);\n\nconst GIT_NESTED_SUBCOMMAND_WRAPPERS = new Set([\"lfs\", \"svn\"]);\n\nexport const GIT_GLOBAL_FLAGS_WITH_VALUES = new Set([\n\t\"-C\",\n\t\"-c\",\n\t\"--config-env\",\n\t\"--exec-path\",\n\t\"--git-dir\",\n\t\"--namespace\",\n\t\"--super-prefix\",\n\t\"--work-tree\",\n]);\n\nexport const GIT_CLONE_FLAGS_WITH_VALUES = new Set([\n\t\"-b\",\n\t\"--branch\",\n\t\"-c\",\n\t\"--config\",\n\t\"--bundle-uri\",\n\t\"--depth\",\n\t\"--filter\",\n\t\"-j\",\n\t\"--jobs\",\n\t\"-o\",\n\t\"--origin\",\n\t\"--reference\",\n\t\"--reference-if-able\",\n\t\"--separate-git-dir\",\n\t\"--server-option\",\n\t\"--shallow-exclude\",\n\t\"--shallow-since\",\n\t\"--template\",\n\t\"-u\",\n\t\"--upload-pack\",\n]);\n\nconst GIT_REMOTE_ADD_FLAGS_WITH_VALUES = new Set([\n\t\"-m\",\n\t\"--master\",\n\t\"-t\",\n\t\"--track\",\n]);\n\nconst GIT_CONFIG_FLAGS_WITH_VALUES = new Set([\n\t\"-f\",\n\t\"--blob\",\n\t\"--comment\",\n\t\"--default\",\n\t\"--file\",\n\t\"--fixed-value\",\n\t\"--type\",\n\t\"--value\",\n]);\n\nconst GIT_REMOTE_LOCAL_ACTIONS = new Set([\n\t\"get-url\",\n\t\"prune\",\n\t\"remove\",\n\t\"rename\",\n\t\"rm\",\n\t\"set-branches\",\n\t\"set-head\",\n]);\n\nconst GIT_SUBMODULE_ADD_FLAGS_WITH_VALUES = new Set([\n\t\"-b\",\n\t\"--branch\",\n\t\"--depth\",\n\t\"--name\",\n\t\"--reference\",\n]);\n\nconst GIT_SUBMODULE_LOCAL_ACTIONS = new Set([\n\t\"absorbgitdirs\",\n\t\"deinit\",\n\t\"init\",\n\t\"set-branch\",\n\t\"status\",\n\t\"summary\",\n\t\"sync\",\n]);\n\nexport function isLocalGitTarget(value: string): boolean {\n\tconst target = value.trim().replace(/^[\"']|[\"']$/g, \"\");\n\treturn (\n\t\ttarget === \".\" ||\n\t\ttarget === \"..\" ||\n\t\ttarget.startsWith(\"./\") ||\n\t\ttarget.startsWith(\"../\") ||\n\t\ttarget.startsWith(\"/\") ||\n\t\ttarget.startsWith(\"~/\") ||\n\t\ttarget.startsWith(\"file://\")\n\t);\n}\n\nfunction gitNonFlagArgs(\n\targs: string[],\n\tflagsWithValues: Set<string>,\n): string[] {\n\tconst values: string[] = [];\n\tlet skipNext = false;\n\tlet optionsEnded = false;\n\n\tfor (const arg of args) {\n\t\tif (skipNext) {\n\t\t\tskipNext = false;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!optionsEnded && arg === \"--\") {\n\t\t\toptionsEnded = true;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!optionsEnded && arg.startsWith(\"-\")) {\n\t\t\tconst [flag] = arg.split(\"=\", 1);\n\t\t\tif (flag && flagsWithValues.has(flag) && !arg.includes(\"=\")) {\n\t\t\t\tskipNext = true;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalues.push(arg);\n\t}\n\n\treturn values;\n}\n\nexport function gitCloneNonFlagArgs(args: string[]): string[] {\n\treturn gitNonFlagArgs(args, GIT_CLONE_FLAGS_WITH_VALUES);\n}\n\nexport function gitRemoteTargetArgs(args: string[]): string[] {\n\tconst targets = gitNonFlagArgs(args, GIT_REMOTE_ADD_FLAGS_WITH_VALUES);\n\tconst action = targets[0]?.toLowerCase();\n\tif (action === \"add\") {\n\t\treturn targets.slice(2, 3);\n\t}\n\tif (action === \"set-url\") {\n\t\treturn targets.slice(2);\n\t}\n\tif (action && !GIT_REMOTE_LOCAL_ACTIONS.has(action)) {\n\t\treturn targets.slice(0, 1);\n\t}\n\treturn [];\n}\n\nexport function gitConfigTargetArgs(args: string[]): string[] {\n\tconst targets = gitNonFlagArgs(args, GIT_CONFIG_FLAGS_WITH_VALUES);\n\tconst key = targets[0];\n\tif (!key || targets.length < 2) {\n\t\treturn [];\n\t}\n\n\tconst rewriteTarget = key.match(\n\t\t/^url\\.(.+)\\.(?:insteadof|pushinsteadof)$/i,\n\t)?.[1];\n\tif (rewriteTarget) {\n\t\treturn [rewriteTarget];\n\t}\n\n\tif (\n\t\t/^remote\\..+\\.(?:push)?url$/i.test(key) ||\n\t\t/^submodule\\..+\\.url$/i.test(key)\n\t) {\n\t\treturn targets.slice(1, 2);\n\t}\n\n\treturn [];\n}\n\nexport function gitConfigCommandIsLocal(args: string[]): boolean {\n\treturn gitConfigTargetArgs(args).length === 0;\n}\n\nexport function gitRemoteCommandIsLocal(args: string[]): boolean {\n\tconst targets = gitNonFlagArgs(args, GIT_REMOTE_ADD_FLAGS_WITH_VALUES);\n\tconst action = targets[0]?.toLowerCase();\n\tif (!action || GIT_REMOTE_LOCAL_ACTIONS.has(action)) {\n\t\treturn true;\n\t}\n\tif (action === \"add\") {\n\t\treturn targets.length < 3;\n\t}\n\tif (action === \"set-url\") {\n\t\treturn targets.length < 3;\n\t}\n\treturn false;\n}\n\nexport function gitSubmoduleTargetArgs(args: string[]): string[] {\n\tconst targets = gitNonFlagArgs(args, GIT_SUBMODULE_ADD_FLAGS_WITH_VALUES);\n\tconst action = targets[0]?.toLowerCase();\n\tif (!action || GIT_SUBMODULE_LOCAL_ACTIONS.has(action)) {\n\t\treturn [];\n\t}\n\tif (action === \"add\") {\n\t\treturn targets.slice(1, 2);\n\t}\n\treturn targets.slice(0, 1);\n}\n\nexport function gitSubmoduleCommandIsLocal(args: string[]): boolean {\n\tconst targets = gitNonFlagArgs(args, GIT_SUBMODULE_ADD_FLAGS_WITH_VALUES);\n\tconst action = targets[0]?.toLowerCase();\n\treturn !action || GIT_SUBMODULE_LOCAL_ACTIONS.has(action);\n}\n\nexport function gitArchiveTargetArgs(args: string[]): string[] {\n\tconst targets: string[] = [];\n\n\tfor (let index = 0; index < args.length; index += 1) {\n\t\tconst arg = args[index]!;\n\t\tif (arg === \"--remote\" && index + 1 < args.length) {\n\t\t\ttargets.push(args[index + 1]!);\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (arg.startsWith(\"--remote=\")) {\n\t\t\tconst target = arg.slice(\"--remote=\".length);\n\t\t\tif (target) {\n\t\t\t\ttargets.push(target);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn targets;\n}\n\nfunction nextGitSubcommandToken(\n\targs: string[],\n): { subcommand: string; args: string[] } | null {\n\tfor (let index = 0; index < args.length; index += 1) {\n\t\tconst arg = args[index]!;\n\t\tif (arg === \"--\") {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst [flag] = arg.split(\"=\", 1);\n\t\tif (\n\t\t\tflag &&\n\t\t\tGIT_GLOBAL_FLAGS_WITH_VALUES.has(flag) &&\n\t\t\t!arg.includes(\"=\") &&\n\t\t\tindex + 1 < args.length\n\t\t) {\n\t\t\tindex += 1;\n\t\t\tcontinue;\n\t\t}\n\t\tif (arg.startsWith(\"-c\") && arg !== \"-c\") {\n\t\t\tcontinue;\n\t\t}\n\t\tif (arg.startsWith(\"--\")) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (arg.startsWith(\"-\")) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst subcommand = arg.toLowerCase();\n\t\treturn { subcommand, args: args.slice(index + 1) };\n\t}\n\n\treturn null;\n}\n\nexport function gitSubcommandInvocation(\n\targs: string[],\n): { subcommand: string; args: string[] } | null {\n\tconst invocation = nextGitSubcommandToken(args);\n\tif (!invocation) {\n\t\treturn null;\n\t}\n\n\tif (NETWORK_GIT_SUBCOMMANDS.has(invocation.subcommand)) {\n\t\treturn invocation;\n\t}\n\n\tif (!GIT_NESTED_SUBCOMMAND_WRAPPERS.has(invocation.subcommand)) {\n\t\treturn null;\n\t}\n\n\tconst nestedInvocation = nextGitSubcommandToken(invocation.args);\n\treturn nestedInvocation &&\n\t\tNETWORK_GIT_SUBCOMMANDS.has(nestedInvocation.subcommand)\n\t\t? nestedInvocation\n\t\t: null;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/url-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"url-extractor.d.ts","sourceRoot":"","sources":["../../src/utils/url-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAk4DH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAyB7D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAiCrE;AAkBD;;;;;GAKG;AACH,wBAAgB,oCAAoC,CACnD,OAAO,EAAE,MAAM,GACb,MAAM,EAAE,CAQV;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyB5E;AAqHD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC7B,KAAK,EAAE,OAAO,EACd,YAAY,CAAC,EAAE,MAAM,GACnB,MAAM,EAAE,CASV"}
|