@angelmsger/fx 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +155 -0
- package/README.md +9 -42
- package/defaults/tools.yaml +20 -3
- package/dist/adapters/agent-host/toml-mcp.js +1 -3
- package/dist/adapters/agent-host/toml-mcp.js.map +1 -1
- package/dist/adapters/calendar/wecom-calendar-cli/provider.js +42 -0
- package/dist/adapters/calendar/wecom-calendar-cli/provider.js.map +1 -0
- package/dist/adapters/ci/github-actions/ci.js +9 -7
- package/dist/adapters/ci/github-actions/ci.js.map +1 -1
- package/dist/adapters/ci/github-actions/provider.js +2 -2
- package/dist/adapters/ci/github-actions/provider.js.map +1 -1
- package/dist/adapters/ci/jenkins-cli/ci.js +6 -1
- package/dist/adapters/ci/jenkins-cli/ci.js.map +1 -1
- package/dist/adapters/ci/jenkins-cli/recipes.js +5 -1
- package/dist/adapters/ci/jenkins-cli/recipes.js.map +1 -1
- package/dist/adapters/cluster/kubectl/provider.js +2 -3
- package/dist/adapters/cluster/kubectl/provider.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/contribution-call.js +5 -27
- package/dist/adapters/code-host/bitbucket-cli/contribution-call.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/provider.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/pull-request-reference.js +1 -19
- package/dist/adapters/code-host/bitbucket-cli/pull-request-reference.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/pull-request.js +3 -17
- package/dist/adapters/code-host/bitbucket-cli/pull-request.js.map +1 -1
- package/dist/adapters/code-host/bitbucket-cli/repository-identity.js +1 -4
- package/dist/adapters/code-host/bitbucket-cli/repository-identity.js.map +1 -1
- package/dist/adapters/code-host/github/contribution.js +179 -0
- package/dist/adapters/code-host/github/contribution.js.map +1 -0
- package/dist/adapters/code-host/github/import.js +27 -0
- package/dist/adapters/code-host/github/import.js.map +1 -0
- package/dist/adapters/code-host/github/provider.js +12 -14
- package/dist/adapters/code-host/github/provider.js.map +1 -1
- package/dist/adapters/code-host/local-git/import.js +2 -2
- package/dist/adapters/code-host/local-git/import.js.map +1 -1
- package/dist/adapters/code-host/local-git/provider.js +3 -3
- package/dist/adapters/code-host/local-git/provider.js.map +1 -1
- package/dist/adapters/error-tracker/sentry/client.js +1 -1
- package/dist/adapters/error-tracker/sentry/client.js.map +1 -1
- package/dist/adapters/family/cli.js +15 -17
- package/dist/adapters/family/cli.js.map +1 -1
- package/dist/adapters/family/contribution.js +65 -0
- package/dist/adapters/family/contribution.js.map +1 -0
- package/dist/adapters/family/service-protocol.js +1 -0
- package/dist/adapters/family/service-protocol.js.map +1 -1
- package/dist/adapters/family/service.js +5 -0
- package/dist/adapters/family/service.js.map +1 -1
- package/dist/adapters/fs/node-fs.js +5 -8
- package/dist/adapters/fs/node-fs.js.map +1 -1
- package/dist/adapters/git/run.js +17 -0
- package/dist/adapters/git/run.js.map +1 -0
- package/dist/adapters/git/system-git.js +36 -16
- package/dist/adapters/git/system-git.js.map +1 -1
- package/dist/adapters/github/gh.js +1 -1
- package/dist/adapters/github/gh.js.map +1 -1
- package/dist/adapters/log-store/openobserve-cli/provider.js +1 -1
- package/dist/adapters/log-store/openobserve-cli/provider.js.map +1 -1
- package/dist/adapters/log-store/openobserve-cli/recipes.js +5 -1
- package/dist/adapters/log-store/openobserve-cli/recipes.js.map +1 -1
- package/dist/adapters/manifest-source/git-repo.js +38 -18
- package/dist/adapters/manifest-source/git-repo.js.map +1 -1
- package/dist/adapters/manifest-source/stdin.js +4 -6
- package/dist/adapters/manifest-source/stdin.js.map +1 -1
- package/dist/adapters/metrics/prometheus-cli/provider.js +1 -1
- package/dist/adapters/metrics/prometheus-cli/provider.js.map +1 -1
- package/dist/adapters/metrics/prometheus-cli/service.js +9 -1
- package/dist/adapters/metrics/prometheus-cli/service.js.map +1 -1
- package/dist/adapters/process/deadline-process.js +33 -7
- package/dist/adapters/process/deadline-process.js.map +1 -1
- package/dist/adapters/process/diagnostic-process.js +2 -3
- package/dist/adapters/process/diagnostic-process.js.map +1 -1
- package/dist/adapters/registry/registry-policy.js +4 -14
- package/dist/adapters/registry/registry-policy.js.map +1 -1
- package/dist/application/agent/list.js +12 -0
- package/dist/application/agent/list.js.map +1 -1
- package/dist/application/agent/pick.js +12 -30
- package/dist/application/agent/pick.js.map +1 -1
- package/dist/application/agent/workspace-cleanup.js +4 -1
- package/dist/application/agent/workspace-cleanup.js.map +1 -1
- package/dist/application/config/export.js +3 -2
- package/dist/application/config/export.js.map +1 -1
- package/dist/application/config/import-registry.js +3 -3
- package/dist/application/config/import-registry.js.map +1 -1
- package/dist/application/config/import.js +12 -4
- package/dist/application/config/import.js.map +1 -1
- package/dist/application/config/resolve.js +2 -4
- package/dist/application/config/resolve.js.map +1 -1
- package/dist/application/contribution/identity.js +3 -3
- package/dist/application/contribution/identity.js.map +1 -1
- package/dist/application/contribution/push-registered.js +77 -0
- package/dist/application/contribution/push-registered.js.map +1 -0
- package/dist/application/contribution/push.js +12 -19
- package/dist/application/contribution/push.js.map +1 -1
- package/dist/application/contribution/validate.js +12 -13
- package/dist/application/contribution/validate.js.map +1 -1
- package/dist/application/docs/rendered.js +2 -1
- package/dist/application/docs/rendered.js.map +1 -1
- package/dist/application/doctor/index.js +43 -27
- package/dist/application/doctor/index.js.map +1 -1
- package/dist/application/doctor/manifest.js +5 -1
- package/dist/application/doctor/manifest.js.map +1 -1
- package/dist/application/doctor/repos.js +1 -1
- package/dist/application/doctor/repos.js.map +1 -1
- package/dist/application/doctor/tools.js +20 -31
- package/dist/application/doctor/tools.js.map +1 -1
- package/dist/application/doctor/types.js +0 -8
- package/dist/application/doctor/types.js.map +1 -1
- package/dist/application/env/names.js.map +1 -1
- package/dist/application/harness/apply.js +4 -3
- package/dist/application/harness/apply.js.map +1 -1
- package/dist/application/harness/cleanup.js +5 -14
- package/dist/application/harness/cleanup.js.map +1 -1
- package/dist/application/harness/mcp-readiness.js +3 -1
- package/dist/application/harness/mcp-readiness.js.map +1 -1
- package/dist/application/harness/names.js +2 -4
- package/dist/application/harness/names.js.map +1 -1
- package/dist/application/harness/plan.js +12 -10
- package/dist/application/harness/plan.js.map +1 -1
- package/dist/application/harness/reconcile.js +4 -14
- package/dist/application/harness/reconcile.js.map +1 -1
- package/dist/application/harness/session.js +2 -13
- package/dist/application/harness/session.js.map +1 -1
- package/dist/application/harness/stages.js +8 -18
- package/dist/application/harness/stages.js.map +1 -1
- package/dist/application/harness/types.js +1 -8
- package/dist/application/harness/types.js.map +1 -1
- package/dist/application/hook/apply.js +5 -4
- package/dist/application/hook/apply.js.map +1 -1
- package/dist/application/hook/automatic-sync.js +8 -3
- package/dist/application/hook/automatic-sync.js.map +1 -1
- package/dist/application/hook/cleanup.js +5 -14
- package/dist/application/hook/cleanup.js.map +1 -1
- package/dist/application/hook/dispatch.js +24 -3
- package/dist/application/hook/dispatch.js.map +1 -1
- package/dist/application/hook/observe.js +20 -12
- package/dist/application/hook/observe.js.map +1 -1
- package/dist/application/hook/plan.js.map +1 -1
- package/dist/application/hook/reconcile.js +2 -9
- package/dist/application/hook/reconcile.js.map +1 -1
- package/dist/application/hook/session.js +5 -12
- package/dist/application/hook/session.js.map +1 -1
- package/dist/application/hook/supervisor-report.js +2 -1
- package/dist/application/hook/supervisor-report.js.map +1 -1
- package/dist/application/hook/types.js +8 -1
- package/dist/application/hook/types.js.map +1 -1
- package/dist/application/init/errors.js +19 -19
- package/dist/application/init/errors.js.map +1 -1
- package/dist/application/init/index.js +60 -42
- package/dist/application/init/index.js.map +1 -1
- package/dist/application/init/preview-initialization.js +40 -0
- package/dist/application/init/preview-initialization.js.map +1 -0
- package/dist/application/init/preview.js +37 -19
- package/dist/application/init/preview.js.map +1 -1
- package/dist/application/init/resume.js +30 -0
- package/dist/application/init/resume.js.map +1 -0
- package/dist/application/init/source.js +8 -0
- package/dist/application/init/source.js.map +1 -0
- package/dist/application/init/standalone.js +341 -0
- package/dist/application/init/standalone.js.map +1 -0
- package/dist/application/{doctor/login.js → login/check.js} +22 -43
- package/dist/application/login/check.js.map +1 -0
- package/dist/application/login/collect.js +2 -1
- package/dist/application/login/collect.js.map +1 -1
- package/dist/application/login/command-failure.js +2 -0
- package/dist/application/login/command-failure.js.map +1 -1
- package/dist/application/login/deps.js +2 -3
- package/dist/application/login/deps.js.map +1 -1
- package/dist/application/login/run.js +149 -54
- package/dist/application/login/run.js.map +1 -1
- package/dist/application/login/stage.js +146 -0
- package/dist/application/login/stage.js.map +1 -0
- package/dist/application/login/verify.js +49 -36
- package/dist/application/login/verify.js.map +1 -1
- package/dist/application/manifest/context.js +5 -1
- package/dist/application/manifest/context.js.map +1 -1
- package/dist/application/{import.js → manifest/import.js} +34 -27
- package/dist/application/manifest/import.js.map +1 -0
- package/dist/application/manifest/lint.js +15 -23
- package/dist/application/manifest/lint.js.map +1 -1
- package/dist/application/manifest/load.js +7 -11
- package/dist/application/manifest/load.js.map +1 -1
- package/dist/application/manifest/prepare.js +3 -2
- package/dist/application/manifest/prepare.js.map +1 -1
- package/dist/application/manifest/providers.js +4 -1
- package/dist/application/manifest/providers.js.map +1 -1
- package/dist/application/{refresh-manifest.js → manifest/refresh.js} +26 -2
- package/dist/application/manifest/refresh.js.map +1 -0
- package/dist/application/manifest/set.js +2 -1
- package/dist/application/manifest/set.js.map +1 -1
- package/dist/application/member/list.js +2 -4
- package/dist/application/member/list.js.map +1 -1
- package/dist/application/member/show.js +2 -3
- package/dist/application/member/show.js.map +1 -1
- package/dist/application/preparation.js +92 -25
- package/dist/application/preparation.js.map +1 -1
- package/dist/application/probe-record/index.js +19 -18
- package/dist/application/probe-record/index.js.map +1 -1
- package/dist/application/probe-record/plan.js +6 -4
- package/dist/application/probe-record/plan.js.map +1 -1
- package/dist/application/{can.js → readiness/can.js} +23 -11
- package/dist/application/readiness/can.js.map +1 -0
- package/dist/application/readiness/index.js +22 -35
- package/dist/application/readiness/index.js.map +1 -1
- package/dist/application/readiness/resolve.js +13 -15
- package/dist/application/readiness/resolve.js.map +1 -1
- package/dist/application/readiness/verdicts.js +2 -7
- package/dist/application/readiness/verdicts.js.map +1 -1
- package/dist/application/{where.js → readiness/where.js} +19 -21
- package/dist/application/readiness/where.js.map +1 -0
- package/dist/application/release/ci.js +1 -1
- package/dist/application/release/ci.js.map +1 -1
- package/dist/application/release/index.js +12 -17
- package/dist/application/release/index.js.map +1 -1
- package/dist/application/safety/trust.js +12 -14
- package/dist/application/safety/trust.js.map +1 -1
- package/dist/application/self/update.js +23 -13
- package/dist/application/self/update.js.map +1 -1
- package/dist/application/services/command.js +6 -8
- package/dist/application/services/command.js.map +1 -1
- package/dist/application/services/operation.js +12 -19
- package/dist/application/services/operation.js.map +1 -1
- package/dist/application/services/recipes.js +7 -2
- package/dist/application/services/recipes.js.map +1 -1
- package/dist/application/services/stage.js +6 -4
- package/dist/application/services/stage.js.map +1 -1
- package/dist/application/services/types.js +7 -1
- package/dist/application/services/types.js.map +1 -1
- package/dist/application/skill/copies.js +13 -22
- package/dist/application/skill/copies.js.map +1 -1
- package/dist/application/skill/fx-copies.js +1 -1
- package/dist/application/skill/fx-copies.js.map +1 -1
- package/dist/application/skill/stage.js +24 -26
- package/dist/application/skill/stage.js.map +1 -1
- package/dist/application/skill/standalone.js +1 -1
- package/dist/application/skill/standalone.js.map +1 -1
- package/dist/application/skill/targets.js +2 -16
- package/dist/application/skill/targets.js.map +1 -1
- package/dist/application/skill/tool-skills.js +20 -10
- package/dist/application/skill/tool-skills.js.map +1 -1
- package/dist/application/sync/checks.js +7 -45
- package/dist/application/sync/checks.js.map +1 -1
- package/dist/application/sync/index.js +76 -26
- package/dist/application/sync/index.js.map +1 -1
- package/dist/application/sync/stages.js +33 -26
- package/dist/application/sync/stages.js.map +1 -1
- package/dist/application/sync/types.js +6 -1
- package/dist/application/sync/types.js.map +1 -1
- package/dist/application/tool/check.js +8 -0
- package/dist/application/tool/check.js.map +1 -1
- package/dist/application/tool/history.js +16 -0
- package/dist/application/tool/history.js.map +1 -0
- package/dist/application/tool/initialize.js +2 -1
- package/dist/application/tool/initialize.js.map +1 -1
- package/dist/application/tool/install.js +15 -18
- package/dist/application/tool/install.js.map +1 -1
- package/dist/application/tool/installed.js +1 -1
- package/dist/application/tool/installed.js.map +1 -1
- package/dist/application/tool/list.js.map +1 -1
- package/dist/application/tool/scope.js +8 -7
- package/dist/application/tool/scope.js.map +1 -1
- package/dist/application/tool/select.js +2 -4
- package/dist/application/tool/select.js.map +1 -1
- package/dist/application/tool/show.js +6 -1
- package/dist/application/tool/show.js.map +1 -1
- package/dist/application/tool/toolchain.js +18 -5
- package/dist/application/tool/toolchain.js.map +1 -1
- package/dist/application/update/check.js +2 -1
- package/dist/application/update/check.js.map +1 -1
- package/dist/application/workspace/command-operation.js +4 -3
- package/dist/application/workspace/command-operation.js.map +1 -1
- package/dist/application/{workspace-context.js → workspace/context.js} +26 -19
- package/dist/application/workspace/context.js.map +1 -0
- package/dist/application/workspace/deps.js +3 -3
- package/dist/application/workspace/deps.js.map +1 -1
- package/dist/application/workspace/guidance.js +2 -4
- package/dist/application/workspace/guidance.js.map +1 -1
- package/dist/application/workspace/health.js +4 -2
- package/dist/application/workspace/health.js.map +1 -1
- package/dist/application/workspace/inspect.js +1 -4
- package/dist/application/workspace/inspect.js.map +1 -1
- package/dist/application/workspace/manage.js +83 -97
- package/dist/application/workspace/manage.js.map +1 -1
- package/dist/application/workspace/operation.js +13 -14
- package/dist/application/workspace/operation.js.map +1 -1
- package/dist/application/workspace/plan.js +2 -1
- package/dist/application/workspace/plan.js.map +1 -1
- package/dist/application/workspace/registry.js +4 -3
- package/dist/application/workspace/registry.js.map +1 -1
- package/dist/application/workspace/resolve.js +10 -12
- package/dist/application/workspace/resolve.js.map +1 -1
- package/dist/application/workspace/resources.js +39 -32
- package/dist/application/workspace/resources.js.map +1 -1
- package/dist/application/workspace/source-preview.js +6 -3
- package/dist/application/workspace/source-preview.js.map +1 -1
- package/dist/application/{status.js → workspace/status.js} +51 -6
- package/dist/application/workspace/status.js.map +1 -0
- package/dist/cli/base.js +28 -29
- package/dist/cli/base.js.map +1 -1
- package/dist/cli/commands/agent/pick.js +4 -1
- package/dist/cli/commands/agent/pick.js.map +1 -1
- package/dist/cli/commands/agent/unpick.js +5 -1
- package/dist/cli/commands/agent/unpick.js.map +1 -1
- package/dist/cli/commands/can.js +5 -21
- package/dist/cli/commands/can.js.map +1 -1
- package/dist/cli/commands/config/import.js +1 -8
- package/dist/cli/commands/config/import.js.map +1 -1
- package/dist/cli/commands/doctor.js +2 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/env/pick.js +1 -0
- package/dist/cli/commands/env/pick.js.map +1 -1
- package/dist/cli/commands/env/select.js +1 -0
- package/dist/cli/commands/env/select.js.map +1 -1
- package/dist/cli/commands/env/unpick.js +1 -0
- package/dist/cli/commands/env/unpick.js.map +1 -1
- package/dist/cli/commands/hook/disable.js +1 -0
- package/dist/cli/commands/hook/disable.js.map +1 -1
- package/dist/cli/commands/hook/enable.js +1 -0
- package/dist/cli/commands/hook/enable.js.map +1 -1
- package/dist/cli/commands/init.js +40 -14
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/login.js +13 -2
- package/dist/cli/commands/login.js.map +1 -1
- package/dist/cli/commands/manifest/import.js +6 -2
- package/dist/cli/commands/manifest/import.js.map +1 -1
- package/dist/cli/commands/manifest/lint.js +5 -1
- package/dist/cli/commands/manifest/lint.js.map +1 -1
- package/dist/cli/commands/manifest/record-probe.js +1 -0
- package/dist/cli/commands/manifest/record-probe.js.map +1 -1
- package/dist/cli/commands/manifest/render.js +1 -0
- package/dist/cli/commands/manifest/render.js.map +1 -1
- package/dist/cli/commands/manifest/repo-set.js +1 -0
- package/dist/cli/commands/manifest/repo-set.js.map +1 -1
- package/dist/cli/commands/repo/add.js +1 -0
- package/dist/cli/commands/repo/add.js.map +1 -1
- package/dist/cli/commands/repo/fork.js +1 -0
- package/dist/cli/commands/repo/fork.js.map +1 -1
- package/dist/cli/commands/repo/pick.js +1 -0
- package/dist/cli/commands/repo/pick.js.map +1 -1
- package/dist/cli/commands/repo/remove.js +1 -0
- package/dist/cli/commands/repo/remove.js.map +1 -1
- package/dist/cli/commands/repo/select.js +1 -0
- package/dist/cli/commands/repo/select.js.map +1 -1
- package/dist/cli/commands/repo/unpick.js +1 -0
- package/dist/cli/commands/repo/unpick.js.map +1 -1
- package/dist/cli/commands/selection.js +1 -2
- package/dist/cli/commands/selection.js.map +1 -1
- package/dist/cli/commands/self/update.js +11 -14
- package/dist/cli/commands/self/update.js.map +1 -1
- package/dist/cli/commands/source/push.js +14 -13
- package/dist/cli/commands/source/push.js.map +1 -1
- package/dist/cli/commands/status.js +6 -36
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/sync.js +7 -5
- package/dist/cli/commands/sync.js.map +1 -1
- package/dist/cli/commands/tool/history.js +2 -2
- package/dist/cli/commands/tool/history.js.map +1 -1
- package/dist/cli/commands/where.js +2 -1
- package/dist/cli/commands/where.js.map +1 -1
- package/dist/cli/commands/workspace/rebind.js +1 -4
- package/dist/cli/commands/workspace/rebind.js.map +1 -1
- package/dist/cli/completion.js +2 -4
- package/dist/cli/completion.js.map +1 -1
- package/dist/cli/hook-command.js +2 -2
- package/dist/cli/hook-command.js.map +1 -1
- package/dist/cli/main.js +4 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/notices.js +26 -24
- package/dist/cli/notices.js.map +1 -1
- package/dist/cli/preparation-view.js +226 -51
- package/dist/cli/preparation-view.js.map +1 -1
- package/dist/cli/render/exceptional.js +11 -4
- package/dist/cli/render/exceptional.js.map +1 -1
- package/dist/cli/render/fields.js +1 -3
- package/dist/cli/render/fields.js.map +1 -1
- package/dist/cli/render/human.js +1 -3
- package/dist/cli/render/human.js.map +1 -1
- package/dist/cli/render/index.js +1 -1
- package/dist/cli/render/index.js.map +1 -1
- package/dist/cli/render/status-line.js +17 -3
- package/dist/cli/render/status-line.js.map +1 -1
- package/dist/cli/render/tone.js +29 -10
- package/dist/cli/render/tone.js.map +1 -1
- package/dist/cli/tool-command.js +4 -11
- package/dist/cli/tool-command.js.map +1 -1
- package/dist/cli/workspace-write-policy.js +8 -33
- package/dist/cli/workspace-write-policy.js.map +1 -1
- package/dist/composition/agent-cleanup.js +5 -1
- package/dist/composition/agent-cleanup.js.map +1 -1
- package/dist/composition/bundled.js +4 -1
- package/dist/composition/bundled.js.map +1 -1
- package/dist/composition/command-wiring.js +55 -96
- package/dist/composition/command-wiring.js.map +1 -1
- package/dist/composition/container.js +25 -20
- package/dist/composition/container.js.map +1 -1
- package/dist/composition/contributions.js +26 -71
- package/dist/composition/contributions.js.map +1 -1
- package/dist/composition/harness.js +3 -4
- package/dist/composition/harness.js.map +1 -1
- package/dist/composition/hook-entry.js +2 -1
- package/dist/composition/hook-entry.js.map +1 -1
- package/dist/composition/hook-wiring.js +8 -16
- package/dist/composition/hook-wiring.js.map +1 -1
- package/dist/composition/hook-worker.js +9 -11
- package/dist/composition/hook-worker.js.map +1 -1
- package/dist/composition/hooks.js +6 -3
- package/dist/composition/hooks.js.map +1 -1
- package/dist/composition/import.js +8 -6
- package/dist/composition/import.js.map +1 -1
- package/dist/composition/manifest-edit.js +1 -2
- package/dist/composition/manifest-edit.js.map +1 -1
- package/dist/composition/manifest-sources.js +3 -16
- package/dist/composition/manifest-sources.js.map +1 -1
- package/dist/composition/probe-record.js +1 -2
- package/dist/composition/probe-record.js.map +1 -1
- package/dist/composition/refresh.js +1 -1
- package/dist/composition/refresh.js.map +1 -1
- package/dist/composition/registry.js +8 -37
- package/dist/composition/registry.js.map +1 -1
- package/dist/composition/tool-install.js +5 -1
- package/dist/composition/tool-install.js.map +1 -1
- package/dist/composition/tool-inventory.js +10 -1
- package/dist/composition/tool-inventory.js.map +1 -1
- package/dist/composition/trace.js +3 -4
- package/dist/composition/trace.js.map +1 -1
- package/dist/composition/update.js +12 -1
- package/dist/composition/update.js.map +1 -1
- package/dist/composition/workspace-management.js +8 -2
- package/dist/composition/workspace-management.js.map +1 -1
- package/dist/domain/config/codec.js +2 -1
- package/dist/domain/config/codec.js.map +1 -1
- package/dist/domain/config/profile.js +0 -1
- package/dist/domain/config/profile.js.map +1 -1
- package/dist/domain/contribution/pull-request.js +12 -1
- package/dist/domain/contribution/pull-request.js.map +1 -1
- package/dist/domain/contribution/selection.js +4 -8
- package/dist/domain/contribution/selection.js.map +1 -1
- package/dist/domain/errors.js +10 -3
- package/dist/domain/errors.js.map +1 -1
- package/dist/domain/fuzzy.js +6 -1
- package/dist/domain/fuzzy.js.map +1 -1
- package/dist/domain/harness/actions.js +60 -0
- package/dist/domain/harness/actions.js.map +1 -0
- package/dist/domain/harness/deadlines.js +14 -0
- package/dist/domain/harness/deadlines.js.map +1 -0
- package/dist/domain/harness/hooks.js +8 -0
- package/dist/domain/harness/hooks.js.map +1 -1
- package/dist/domain/harness/session-start.js +2 -1
- package/dist/domain/harness/session-start.js.map +1 -1
- package/dist/domain/harness/state-recovery.js.map +1 -1
- package/dist/domain/import/infer.js +2 -9
- package/dist/domain/import/infer.js.map +1 -1
- package/dist/domain/lease.js +30 -0
- package/dist/domain/lease.js.map +1 -0
- package/dist/domain/manifest/decode.js +5 -8
- package/dist/domain/manifest/decode.js.map +1 -1
- package/dist/domain/manifest/document.js +3 -5
- package/dist/domain/manifest/document.js.map +1 -1
- package/dist/domain/manifest/editor.js +3 -7
- package/dist/domain/manifest/editor.js.map +1 -1
- package/dist/domain/manifest/explain.js +2 -4
- package/dist/domain/manifest/explain.js.map +1 -1
- package/dist/domain/manifest/issues.js +2 -2
- package/dist/domain/manifest/issues.js.map +1 -1
- package/dist/domain/manifest/loader.js +2 -1
- package/dist/domain/manifest/loader.js.map +1 -1
- package/dist/domain/manifest/overlay.js +6 -9
- package/dist/domain/manifest/overlay.js.map +1 -1
- package/dist/domain/manifest/providers.js +34 -2
- package/dist/domain/manifest/providers.js.map +1 -1
- package/dist/domain/manifest/quarantine.js +21 -1
- package/dist/domain/manifest/quarantine.js.map +1 -1
- package/dist/domain/manifest/reflect.js +2 -31
- package/dist/domain/manifest/reflect.js.map +1 -1
- package/dist/domain/manifest/rules/harness.js +2 -16
- package/dist/domain/manifest/rules/harness.js.map +1 -1
- package/dist/domain/manifest/rules/tools.js +1 -0
- package/dist/domain/manifest/rules/tools.js.map +1 -1
- package/dist/domain/manifest/service.schema.js +5 -14
- package/dist/domain/manifest/service.schema.js.map +1 -1
- package/dist/domain/manifest/skill-frontmatter.js +1 -1
- package/dist/domain/manifest/skill-frontmatter.js.map +1 -1
- package/dist/domain/manifest/tools.schema.js +6 -0
- package/dist/domain/manifest/tools.schema.js.map +1 -1
- package/dist/domain/manifest/types.js.map +1 -1
- package/dist/domain/outcome.js +5 -0
- package/dist/domain/outcome.js.map +1 -0
- package/dist/domain/path.js +9 -1
- package/dist/domain/path.js.map +1 -1
- package/dist/domain/preparation.js.map +1 -1
- package/dist/domain/projection.js +8 -0
- package/dist/domain/projection.js.map +1 -0
- package/dist/domain/public-url.js +22 -0
- package/dist/domain/public-url.js.map +1 -0
- package/dist/domain/release/ci.js +19 -8
- package/dist/domain/release/ci.js.map +1 -1
- package/dist/domain/report.js +1 -1
- package/dist/domain/report.js.map +1 -1
- package/dist/domain/setup/names.js +23 -0
- package/dist/domain/setup/names.js.map +1 -0
- package/dist/domain/setup/planner.js +24 -22
- package/dist/domain/setup/planner.js.map +1 -1
- package/dist/domain/setup/progress.js +57 -0
- package/dist/domain/setup/progress.js.map +1 -0
- package/dist/domain/setup/types.js +5 -0
- package/dist/domain/setup/types.js.map +1 -1
- package/dist/domain/shell.js +0 -7
- package/dist/domain/shell.js.map +1 -1
- package/dist/domain/skills/frontmatter.js +1 -1
- package/dist/domain/skills/frontmatter.js.map +1 -1
- package/dist/domain/skills/projection.js +2 -3
- package/dist/domain/skills/projection.js.map +1 -1
- package/dist/domain/sync-selection.js +2 -4
- package/dist/domain/sync-selection.js.map +1 -1
- package/dist/domain/toolchain/resolve.js +30 -16
- package/dist/domain/toolchain/resolve.js.map +1 -1
- package/dist/domain/toolchain/select.js +15 -9
- package/dist/domain/toolchain/select.js.map +1 -1
- package/dist/domain/toolchain/stderr.js +34 -14
- package/dist/domain/toolchain/stderr.js.map +1 -1
- package/dist/domain/values.js +18 -2
- package/dist/domain/values.js.map +1 -1
- package/dist/domain/workspace/commits.js +5 -0
- package/dist/domain/workspace/commits.js.map +1 -1
- package/dist/domain/workspace/operation-journal.js +93 -0
- package/dist/domain/workspace/operation-journal.js.map +1 -0
- package/dist/domain/workspace/plan.js +17 -1
- package/dist/domain/workspace/plan.js.map +1 -1
- package/dist/infra/config-store.js +8 -13
- package/dist/infra/config-store.js.map +1 -1
- package/dist/infra/contribution-store.js +21 -67
- package/dist/infra/contribution-store.js.map +1 -1
- package/dist/infra/harness-state.js +21 -49
- package/dist/infra/harness-state.js.map +1 -1
- package/dist/infra/local-store.js +8 -15
- package/dist/infra/local-store.js.map +1 -1
- package/dist/infra/owned-journal.js +57 -0
- package/dist/infra/owned-journal.js.map +1 -0
- package/dist/infra/projection-store.js +4 -3
- package/dist/infra/projection-store.js.map +1 -1
- package/dist/infra/tool-history.js +19 -49
- package/dist/infra/tool-history.js.map +1 -1
- package/dist/infra/trust-store.js +2 -9
- package/dist/infra/trust-store.js.map +1 -1
- package/dist/infra/workspace-home.js +7 -1
- package/dist/infra/workspace-home.js.map +1 -1
- package/dist/ports/ci.js +2 -1
- package/dist/ports/ci.js.map +1 -1
- package/package.json +1 -1
- package/skills/fx-workspace/SKILL.md +7 -8
- package/skills/fx-workspace/references/commands.md +39 -27
- package/skills/fx-workspace/references/initialization.md +17 -0
- package/skills/fx-workspace/references/workspace-tasks.md +6 -7
- package/dist/application/can.js.map +0 -1
- package/dist/application/doctor/login.js.map +0 -1
- package/dist/application/import.js.map +0 -1
- package/dist/application/init/setup.js +0 -125
- package/dist/application/init/setup.js.map +0 -1
- package/dist/application/preview-initialization.js +0 -41
- package/dist/application/preview-initialization.js.map +0 -1
- package/dist/application/refresh-manifest.js.map +0 -1
- package/dist/application/refresh-workspace-manifest.js +0 -27
- package/dist/application/refresh-workspace-manifest.js.map +0 -1
- package/dist/application/status.js.map +0 -1
- package/dist/application/where.js.map +0 -1
- package/dist/application/workspace-context.js.map +0 -1
- package/dist/domain/deadline.js +0 -17
- package/dist/domain/deadline.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,161 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## 0.13.0 (2026-10-27)
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Set up companion tools without a manifest. `fx init` with no directory and no source
|
|
10
|
+
lists the tools in fx's catalog and asks which to set up, by number or name, with
|
|
11
|
+
Enter taking all of them; `fx init --tools <name,...>` or `--tools all` names them
|
|
12
|
+
for agents and scripts, and `--dry-run` previews. fx installs the tools that are
|
|
13
|
+
missing, has each one install its Skill for your coding agents, adds its own
|
|
14
|
+
`fx-workspace` Skill, and checks whether each one is signed in. On a terminal it
|
|
15
|
+
offers to start the setup of a tool that is not signed in (`<tool> config init`,
|
|
16
|
+
`gh auth login`), which asks for the service and your credentials; otherwise, and
|
|
17
|
+
with `--yes`, the report hands that command to you. No workspace is registered, and
|
|
18
|
+
a manifest still decides the tools and presets the services they point at. The JSON
|
|
19
|
+
report has `tools`, `tool_install` and `skills`, and `preparation.scope.workspace`
|
|
20
|
+
is `null`.
|
|
21
|
+
- Let a tool's `auth` in the catalog or a manifest name the JSON field its status must
|
|
22
|
+
report (`json`) and the tool's own interactive setup (`login`). The bundled catalog
|
|
23
|
+
names both for the family CLIs and `login` for `gh`, and `fx tool show` reports them.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- Tell a companion's reuse check in a background hook run how long the run can give
|
|
28
|
+
it, through the companion's own `--timeout`, and leave the check unasked when that is
|
|
29
|
+
under the ten seconds by which a companion bounds the lookups a reuse adds. The check
|
|
30
|
+
used to be ended when the run's time for it ran out. The reuse step's `verify` in
|
|
31
|
+
`fx login --list` and the init preview gains `deadline`, with the flag and the least
|
|
32
|
+
time the check needs (`minimumMs`).
|
|
33
|
+
- Record `LOGIN_UNCHECKED` in place of `LOGIN_REQUIRED` when every login check of a
|
|
34
|
+
background hook run that did not pass was not asked or gave no answer, which
|
|
35
|
+
`fx doctor` reports as incomplete coverage, as when the run ran out of time for it.
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
- Count a Jenkins or OpenObserve environment as signed in only when
|
|
40
|
+
`jenkins-cli auth status` or `openobserve-cli auth status` reports
|
|
41
|
+
`authenticated: true`. Both exit zero when nobody is signed in, so on a machine
|
|
42
|
+
without credentials the sign-in step counted as done and `fx init` and `fx sync`
|
|
43
|
+
did not ask for it.
|
|
44
|
+
- Leave the declared authentication method out of the OpenObserve and Prometheus
|
|
45
|
+
commands `fx where` prints and probes, as checks have done since 0.9.1. A probe of
|
|
46
|
+
an OpenObserve context that uses basic authentication was sent with
|
|
47
|
+
`--auth-scheme session` and refused; the commands now name only the server's URL
|
|
48
|
+
and organization besides the context.
|
|
49
|
+
|
|
50
|
+
## 0.12.0 (2026-10-19)
|
|
51
|
+
|
|
52
|
+
### Added
|
|
53
|
+
|
|
54
|
+
- Open pull requests on GitHub. `fx source push` works with a manifest source hosted
|
|
55
|
+
on GitHub as it does with Bitbucket: it pushes the selected files to your verified
|
|
56
|
+
personal fork through `gh` and opens, reuses or retires the pull request against
|
|
57
|
+
its upstream, and `--pr` accepts a pull request number or its page on GitHub.
|
|
58
|
+
- Recognize checkouts cloned from github.com over HTTPS or SSH in `fx import`,
|
|
59
|
+
which binds the `github` code host with the matching clone prefix as its host.
|
|
60
|
+
A GitHub Enterprise server is still not guessed from a remote.
|
|
61
|
+
- Add `wecom-calendar-cli`, a local, searchable mirror of your own WeCom calendars
|
|
62
|
+
with their history, to the tool catalog and as a `calendar` provider. `fx can`
|
|
63
|
+
checks each member's sign-in and hands agents `wecom-calendar-cli event list`;
|
|
64
|
+
filling the mirror with `wecom-calendar-cli sync` stays the member's call.
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
|
|
68
|
+
- Judge a CI build by the commit it checked out when the platform names it.
|
|
69
|
+
`fx release check` passes a successful build of the branch head and fails one of
|
|
70
|
+
another commit, instead of comparing when the build started with when the head was
|
|
71
|
+
written. GitHub Actions names the commit, and Jenkins does with jenkins-cli 0.12.0
|
|
72
|
+
or later; without it the times still decide. CI evidence gains `commit`.
|
|
73
|
+
- Let a `github-actions` ci environment leave out `branch`. `fx release check` then
|
|
74
|
+
counts the runs of the branch it is checking on each side.
|
|
75
|
+
- Keep MCP, rules and hook rows that report `untrusted`, `missing_variables`,
|
|
76
|
+
`invalid` or `busy` in the summary of an `init`, `sync` or `doctor` JSON report.
|
|
77
|
+
They were counted under `omitted`, while a `foreign` or `conflict` row of the same
|
|
78
|
+
stage was shown.
|
|
79
|
+
- Report `TOOL_MISSING` from a companion query, `sentry` or `git` only when the
|
|
80
|
+
executable could not be started. One that started and exited 127 itself now reads
|
|
81
|
+
as the failed query or Git operation it is, in place of a request to install a tool
|
|
82
|
+
that is already there.
|
|
83
|
+
- Say `"<id>" is not an agent fx knows` for an unknown `--agent` of
|
|
84
|
+
`fx can mcp:<name>`, as `fx agent pick` and `fx skill install` do.
|
|
85
|
+
`fx release check` reports an unknown repository in the words of the other
|
|
86
|
+
repository commands, lists the known names when none is close, and keeps the
|
|
87
|
+
workspace in its next step.
|
|
88
|
+
- Quote a directory, tool or repository name that needs it in the command an error
|
|
89
|
+
suggests: the imported directory of `IMPORT_INSIDE_ROOT`, the tools of a withheld
|
|
90
|
+
installation or a missing companion Skill tool, and the repository of
|
|
91
|
+
`PROBE_RECORD_INPUT_REQUIRED`. A path with a space can be pasted as printed.
|
|
92
|
+
- Quote for the configured `command_shell` the commands that follow a workspace
|
|
93
|
+
`relocate` or `rebind`, a registration `fx init` cannot take or resume, a profile
|
|
94
|
+
import or source contribution whose workspace changed, a probe that could not be
|
|
95
|
+
recorded, a manifest import aimed inside the directory it describes, and a
|
|
96
|
+
`--workspace` that names nothing registered. These were printed in POSIX quoting
|
|
97
|
+
whatever the setting.
|
|
98
|
+
- Run git in the C locale when reading a manifest repository or a `local-git` code
|
|
99
|
+
host, as repository synchronization does. Under another locale a file missing from
|
|
100
|
+
a branch was reported as a failed query, because git's translated message went
|
|
101
|
+
unrecognised. A git that cannot be started there is now `TOOL_MISSING`.
|
|
102
|
+
- Close `fx sync` and `fx init` with one line per stage before the verdict: the
|
|
103
|
+
repositories updated, already current, skipped and failed, by name; what the
|
|
104
|
+
manifest refresh did; and the counts other stages report. In a terminal each
|
|
105
|
+
success is counted on the status line instead of printed, and so is the
|
|
106
|
+
`SYNC_PARTIAL` notice the closing view repeats; `--verbose` prints them, and a
|
|
107
|
+
pipe or JSON still receives every record. The status line printed under a Git
|
|
108
|
+
call no longer repeats itself while other lines keep coming.
|
|
109
|
+
- Group sync and init blockers by what resolves them: a sign-in or credentials,
|
|
110
|
+
access refused, or a server this machine cannot reach, which now gets the command
|
|
111
|
+
that checks it again instead of `fx login`; a Prometheus server that does not
|
|
112
|
+
answer counts as unreachable. A check that waited on another blocker, directly or
|
|
113
|
+
through a third, is named under it instead of counted apart, a companion's error
|
|
114
|
+
code follows its message, and a preparation step whose companion says a retry will
|
|
115
|
+
not help shows the companion's own advice instead of suggesting `fx doctor --fix`.
|
|
116
|
+
Preparation checks gain `cause` and `waits_on`.
|
|
117
|
+
- Run the bundled step that reuses an existing login in `fx login` without asking
|
|
118
|
+
and off the terminal, as init and sync do, also with `--no-input`. Its failure
|
|
119
|
+
keeps the companion's message and code instead of `exit 3`, a terminal shows the
|
|
120
|
+
companion's advice in a `LOGIN_STEP_FAILED` notice, and the companion's JSON no
|
|
121
|
+
longer lands on the terminal; fx asks only before a sign-in.
|
|
122
|
+
- Show only non-zero counts and no empty `problems` under the human `fx login`
|
|
123
|
+
table, and leave the `LOGIN_SUMMARY` notice that repeats them to JSON and pipes.
|
|
124
|
+
A passing check says what it established, such as `authenticated is true`,
|
|
125
|
+
instead of repeating its command.
|
|
126
|
+
|
|
127
|
+
### Fixed
|
|
128
|
+
|
|
129
|
+
- Refuse a recorded harness or contribution path that has a `.git` segment in any
|
|
130
|
+
letter case or a delete character. Harness ownership metadata accepted `.GIT/...`,
|
|
131
|
+
which a case-insensitive volume resolves into a repository's own directory; both
|
|
132
|
+
stores now hold a recorded path to the rule `fx source push` applies to a selection.
|
|
133
|
+
- Report `bundled_tools` in `fx self info` as a path the file system accepts when fx
|
|
134
|
+
is installed under a directory whose name has a space or a non-ASCII character, or
|
|
135
|
+
on Windows. The value was a percent-encoded URL path there.
|
|
136
|
+
- Leave a registration that records no manifest source as it is when
|
|
137
|
+
`fx init --resume` continues it. Resuming wrote `source: "-"` into `config.yaml`:
|
|
138
|
+
`fx sync` then took the workspace for one prepared from stdin and stopped saying
|
|
139
|
+
that it has no source to refresh, and `fx init <dir> --from <source>` refused the
|
|
140
|
+
directory with `SOURCE_MISMATCH` in place of recording the source.
|
|
141
|
+
- Skip a repository whose upstream is still empty, such as one registered with
|
|
142
|
+
`fx repo add` before its first push, instead of failing the whole sync. fx asks
|
|
143
|
+
the remote before calling a branch absent: an empty upstream is a skip with
|
|
144
|
+
outcome `empty_remote` that does not hold readiness back, while an upstream with
|
|
145
|
+
other branches but not the tracked one is a skip with outcome `no_remote_branch`
|
|
146
|
+
that still does, since the manifest may name the wrong branch. An unborn local
|
|
147
|
+
branch fast-forwards once upstream has commits, and a manifest checkout in either
|
|
148
|
+
state is left as it is.
|
|
149
|
+
- Bring earlier environments up to date as soon as `fx login` signs in to one. The
|
|
150
|
+
tool's earlier steps that failed are checked again and those that waited on a
|
|
151
|
+
step now passing are attempted, so environments sharing a stored login no longer
|
|
152
|
+
stay failed or blocked in the summary. No setup action runs a second time; a check
|
|
153
|
+
that still fails keeps its result and says what it found under `recheck`.
|
|
154
|
+
- Say what became of the manifest checkout in its sync row instead of always
|
|
155
|
+
"refreshed": refreshed, already current, or kept with the reason, adding when the
|
|
156
|
+
commits of the branch it was kept on are already upstream.
|
|
157
|
+
- Read the reason a failing check prints inside a JSON object after a prefix, such
|
|
158
|
+
as kubectl's `Error from server (Forbidden): {…}`, instead of quoting the object.
|
|
159
|
+
|
|
5
160
|
## 0.11.0 (2026-10-12)
|
|
6
161
|
|
|
7
162
|
### Added
|
package/README.md
CHANGED
|
@@ -73,36 +73,16 @@ PowerShell commands and Registry routing. For updates, use
|
|
|
73
73
|
## Quick start
|
|
74
74
|
|
|
75
75
|
You need two things: the manifest source supplied by your team and a directory
|
|
76
|
-
for the workspace.
|
|
77
|
-
in this directory.” If you are running the commands yourself:
|
|
76
|
+
for the workspace. Preview the plan, then apply it:
|
|
78
77
|
|
|
79
78
|
```sh
|
|
80
79
|
fx init ./work --from <manifest-repository> --dry-run
|
|
81
80
|
fx init ./work --from <manifest-repository>
|
|
82
81
|
```
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
and completed work are preserved.
|
|
88
|
-
Review the displayed commands before approving new manifest actions.
|
|
89
|
-
|
|
90
|
-
When fx reports **Ready to work**, you can start. If it needs personal sign-in,
|
|
91
|
-
access or approval, it reports the remaining items together. Complete those
|
|
92
|
-
items and use the printed continuation command:
|
|
93
|
-
|
|
94
|
-
```sh
|
|
95
|
-
fx init --resume --workspace work
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
A continuation verifies current state and skips completed preparation. It does
|
|
99
|
-
not reimport a directory source or rebuild checkouts. You do not need to choose
|
|
100
|
-
internal stages or run a separate diagnostic sequence to finish initialization.
|
|
101
|
-
|
|
102
|
-
New workspaces select all shared repositories. To limit the first download,
|
|
103
|
-
[choose repositories](docs/user-guide.md#choose-repositories-before-downloading) and add `--repos`
|
|
104
|
-
to the initial preview and apply. Existing directories are adopted automatically.
|
|
105
|
-
For everyday updates use `fx sync`; `fx status` shows repository state. To work on a repository not downloaded yet, ask your Agent or follow `fx repo show <name>` and its `next_steps`.
|
|
83
|
+
The [quick start](docs/user-guide.md#quick-start) explains what init prepares,
|
|
84
|
+
how to continue after a sign-in or approval, and how to
|
|
85
|
+
[limit the first download](docs/user-guide.md#choose-repositories-before-downloading).
|
|
106
86
|
|
|
107
87
|
## Everyday commands
|
|
108
88
|
|
|
@@ -133,25 +113,12 @@ The [CLI reference](docs/cli/README.md) and `fx <command> --help` own exact synt
|
|
|
133
113
|
## For coding agents
|
|
134
114
|
|
|
135
115
|
Run `fx self info --format json`, then read `SKILL.md` in its `bundled_skill`
|
|
136
|
-
directory, or run `fx skill show`.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
Document updates recheck their planning snapshots and return `DOCS_WRITE_CONFLICT`
|
|
140
|
-
when they detect an intervening change. Partial docs results distinguish completed and
|
|
141
|
-
pending writes; inspect them before retrying.
|
|
142
|
-
|
|
143
|
-
`login` preserves partial results on stdout when it needs human input or a later
|
|
144
|
-
step fails. Read those results alongside stderr errors before retrying; the
|
|
145
|
-
[user guide](docs/user-guide.md) describes the result and recovery fields.
|
|
146
|
-
|
|
147
|
-
`init`, `sync`, `doctor` and `release check` summarize JSON by default; the
|
|
148
|
-
[user guide](docs/user-guide.md#for-coding-agents) explains the full and projected
|
|
149
|
-
views. Keep stdout separate from diagnostic stderr. Do not repeat a write just to
|
|
150
|
-
obtain a different view of its output.
|
|
116
|
+
directory, or run `fx skill show`. Global Skill installation is optional. Start
|
|
117
|
+
sessions at the registered workspace root to use team guidance.
|
|
151
118
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
119
|
+
The [user guide](docs/user-guide.md#for-coding-agents) explains structured
|
|
120
|
+
results, completion verdicts and recovery; the bundled
|
|
121
|
+
[Skill](skills/fx-workspace/SKILL.md) routes each task to its reference.
|
|
155
122
|
|
|
156
123
|
## Configuration
|
|
157
124
|
|
package/defaults/tools.yaml
CHANGED
|
@@ -14,7 +14,7 @@ defaults:
|
|
|
14
14
|
version_args: [--version]
|
|
15
15
|
install: [{ via: npm }]
|
|
16
16
|
skill: { command: [skill, install], dir_flag: --dir }
|
|
17
|
-
auth: { command: [auth, status] }
|
|
17
|
+
auth: { command: [auth, status], json: { path: configured, equals: true }, login: [config, init] }
|
|
18
18
|
tools:
|
|
19
19
|
- name: bitbucket-cli
|
|
20
20
|
desc: Repositories, forks, pull requests and code review on Bitbucket
|
|
@@ -30,30 +30,47 @@ tools:
|
|
|
30
30
|
min_version: '0.10.0'
|
|
31
31
|
desc: Jobs, builds and console output in Jenkins
|
|
32
32
|
install: [{ via: npm, spec: '@angelmsger/jenkins-cli' }]
|
|
33
|
+
auth:
|
|
34
|
+
command: [auth, status]
|
|
35
|
+
json: { path: authenticated, equals: true }
|
|
36
|
+
login: [config, init]
|
|
33
37
|
docs: https://github.com/AngelMsger/jenkins-cli
|
|
34
38
|
- name: openobserve-cli
|
|
35
39
|
min_version: '0.14.0'
|
|
36
40
|
desc: Logs, metrics and traces in OpenObserve
|
|
37
41
|
install: [{ via: npm, spec: '@angelmsger/openobserve-cli' }]
|
|
42
|
+
auth:
|
|
43
|
+
command: [auth, status]
|
|
44
|
+
json: { path: authenticated, equals: true }
|
|
45
|
+
login: [config, init]
|
|
38
46
|
docs: https://github.com/AngelMsger/openobserve-cli
|
|
39
47
|
- name: prometheus-cli
|
|
40
48
|
min_version: '0.2.0'
|
|
41
49
|
desc: PromQL queries, series discovery, scrape targets and alerts in Prometheus
|
|
42
50
|
install: [{ via: npm, spec: '@angelmsger/prometheus-cli' }]
|
|
51
|
+
auth:
|
|
52
|
+
command: [auth, status]
|
|
53
|
+
json: { path: authenticated, equals: true }
|
|
54
|
+
login: [config, init]
|
|
43
55
|
docs: https://github.com/AngelMsger/prometheus-cli
|
|
44
56
|
- name: jira-cli
|
|
45
57
|
min_version: '0.7.0'
|
|
46
58
|
desc: Issues, comments, transitions and worklogs in Jira
|
|
47
59
|
install: [{ via: npm, spec: '@angelmsger/jira-cli' }]
|
|
48
60
|
docs: https://github.com/AngelMsger/jira-cli
|
|
61
|
+
- name: wecom-calendar-cli
|
|
62
|
+
min_version: '0.5.0'
|
|
63
|
+
desc: A local, searchable mirror of your own WeCom calendars, history included
|
|
64
|
+
install: [{ via: npm, spec: '@angelmsger/wecom-calendar-cli' }]
|
|
65
|
+
docs: https://github.com/AngelMsger/wecom-calendar-cli
|
|
49
66
|
- name: gh
|
|
50
67
|
min_version: '2.50.0'
|
|
51
|
-
desc: Repositories, branches and Actions runs on GitHub
|
|
68
|
+
desc: Repositories, branches, pull requests and Actions runs on GitHub
|
|
52
69
|
install:
|
|
53
70
|
- { via: brew, spec: gh }
|
|
54
71
|
- { via: manual }
|
|
55
72
|
skill: { command: [] }
|
|
56
|
-
auth: { command: [auth, status] }
|
|
73
|
+
auth: { command: [auth, status], login: [auth, login] }
|
|
57
74
|
docs: https://cli.github.com/
|
|
58
75
|
- name: sentry
|
|
59
76
|
min_version: '0.44.1'
|
|
@@ -3,6 +3,7 @@ import { createHash } from 'node:crypto';
|
|
|
3
3
|
import { isDeepStrictEqual } from 'node:util';
|
|
4
4
|
import { parse, stringify } from 'smol-toml';
|
|
5
5
|
import { assessMcpSupport } from '../../domain/harness/mcp.js';
|
|
6
|
+
import { isRecord } from '../../domain/values.js';
|
|
6
7
|
import { mcpLaunch } from './mcp-launch.js';
|
|
7
8
|
export class TomlMcpCodec {
|
|
8
9
|
platform;
|
|
@@ -60,9 +61,6 @@ function readToml(text) {
|
|
|
60
61
|
return undefined;
|
|
61
62
|
}
|
|
62
63
|
}
|
|
63
|
-
function isRecord(value) {
|
|
64
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
65
|
-
}
|
|
66
64
|
function findFragment(text, markers) {
|
|
67
65
|
const start = text.indexOf(markers.start);
|
|
68
66
|
if (start < 0 || (start > 0 && text[start - 1] !== '\n'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toml-mcp.js","sourceRoot":"","sources":["../../../src/adapters/agent-host/toml-mcp.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"toml-mcp.js","sourceRoot":"","sources":["../../../src/adapters/agent-host/toml-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// WeCom calendars through the family's wecom-calendar-cli, which mirrors a member's own
|
|
2
|
+
// calendars into a local store over CalDAV and reads them from there, history included;
|
|
3
|
+
// the official wecom-cli lists only the month around today that its bot can see. Each
|
|
4
|
+
// member signs in with their WeCom email and an app-specific CalDAV password, so
|
|
5
|
+
// readiness is a stored credential; filling the store with `sync` is the member's call.
|
|
6
|
+
import { familyService } from '../../family/service.js';
|
|
7
|
+
const TOOL = 'wecom-calendar-cli';
|
|
8
|
+
const MIN_VERSION = '0.5.0';
|
|
9
|
+
const EVENTS = ['event', 'list', '--format', 'json'];
|
|
10
|
+
export const wecomCalendarCliProvider = {
|
|
11
|
+
id: TOOL,
|
|
12
|
+
capability: 'calendar',
|
|
13
|
+
settings: {
|
|
14
|
+
fields: ['base_url', 'context', 'auth_scheme', 'credential_url'],
|
|
15
|
+
authSchemes: ['basic'],
|
|
16
|
+
},
|
|
17
|
+
reference: true,
|
|
18
|
+
tools: [TOOL],
|
|
19
|
+
vars: [],
|
|
20
|
+
service: (settings) => familyService(TOOL, settings, MIN_VERSION),
|
|
21
|
+
recipes: [
|
|
22
|
+
{
|
|
23
|
+
id: 'calendar-access',
|
|
24
|
+
tool: TOOL,
|
|
25
|
+
perEnv: false,
|
|
26
|
+
kind: 'run',
|
|
27
|
+
phase: 'authenticate',
|
|
28
|
+
title: 'Sign in to your WeCom calendars',
|
|
29
|
+
instructions: `Each member signs in with their own WeCom email and an app-specific CalDAV password from the WeCom mobile app; ${TOOL} auth guide explains where it comes from. Run ${TOOL} sync afterwards to fill the local store.`,
|
|
30
|
+
run: ['auth', 'login'],
|
|
31
|
+
verify: {
|
|
32
|
+
command: ['auth', 'status', '--format', 'json'],
|
|
33
|
+
json: { path: 'configured', equals: true, reason: 'detail' },
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
create: (_deps, vars) => ({
|
|
38
|
+
label: 'WeCom calendar events from the local mirror',
|
|
39
|
+
command: [TOOL, ...(vars['context'] ? ['--use-context', vars['context']] : []), ...EVENTS],
|
|
40
|
+
}),
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/adapters/calendar/wecom-calendar-cli/provider.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,wFAAwF;AACxF,sFAAsF;AACtF,iFAAiF;AACjF,wFAAwF;AAIxF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,IAAI,GAAG,oBAAoB,CAAC;AAClC,MAAM,WAAW,GAAG,OAAO,CAAC;AAC5B,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,wBAAwB,GAAmC;IACtE,EAAE,EAAE,IAAI;IACR,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE;QACR,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,CAAC;QAChE,WAAW,EAAE,CAAC,OAAO,CAAC;KACvB;IACD,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,CAAC,IAAI,CAAC;IACb,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC;IACjE,OAAO,EAAE;QACP;YACE,EAAE,EAAE,iBAAiB;YACrB,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,iCAAiC;YACxC,YAAY,EAAE,kHAAkH,IAAI,iDAAiD,IAAI,2CAA2C;YACpO,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;YACtB,MAAM,EAAE;gBACN,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;gBAC/C,IAAI,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE;aAC7D;SACF;KACF;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxB,KAAK,EAAE,6CAA6C;QACpD,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC;KAC3F,CAAC;CACH,CAAC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
// GitHub Actions through gh: a job is one workflow of one repository, narrowed to the
|
|
2
|
-
// runs of one branch and one trigger
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
// workflow that
|
|
2
|
+
// runs of one branch and one trigger. One workflow often runs on pushes, pull requests
|
|
3
|
+
// and by hand, and only the coordinate knows which of those builds what ships; a
|
|
4
|
+
// coordinate that names no branch counts the runs of the branch being checked. A
|
|
5
|
+
// workflow that is not there is an answer (undefined), a workflow that cannot be read
|
|
6
|
+
// is an error.
|
|
6
7
|
import { EXIT, objectOf, queryFailed, stringAt, unreadableError } from '../../family/cli.js';
|
|
7
8
|
import { BINARY, GhCli, qualifiedRepository } from '../../github/gh.js';
|
|
8
9
|
import { TemplatePlatform } from '../../platform/template-platform.js';
|
|
9
10
|
export const ID = 'github-actions';
|
|
10
11
|
const QUERY = { timeoutMs: 15_000 };
|
|
11
12
|
const RUNS = ['run', 'list', '--repo', '{repository}', '--workflow', '{workflow}'];
|
|
12
|
-
const FIELDS = 'number,status,conclusion,startedAt,createdAt,url';
|
|
13
|
+
const FIELDS = 'number,status,conclusion,startedAt,createdAt,url,headSha';
|
|
13
14
|
// A run still on its way, by gh's status; a finished run says how it ended instead.
|
|
14
15
|
const PENDING = new Set(['queued', 'in_progress', 'waiting', 'requested', 'pending']);
|
|
15
16
|
const CONCLUSIONS = {
|
|
@@ -41,8 +42,8 @@ export class GitHubActionsCi {
|
|
|
41
42
|
probe(vars) {
|
|
42
43
|
return this.platform.probe(qualified(vars));
|
|
43
44
|
}
|
|
44
|
-
async lastBuild(vars) {
|
|
45
|
-
const { repository = '', workflow = '', branch, event } = qualified(vars);
|
|
45
|
+
async lastBuild(vars, query) {
|
|
46
|
+
const { repository = '', workflow = '', branch = query.branch, event } = qualified(vars);
|
|
46
47
|
const what = `the last run of ${workflow} in ${repository}${branch ? ` on ${branch}` : ''}`;
|
|
47
48
|
const call = await new GhCli(this.process).call([
|
|
48
49
|
'run',
|
|
@@ -73,6 +74,7 @@ export class GitHubActionsCi {
|
|
|
73
74
|
status: statusOf(run),
|
|
74
75
|
startedAt: stringAt(run, 'startedAt') ?? stringAt(run, 'createdAt') ?? null,
|
|
75
76
|
url: stringAt(run, 'url') ?? null,
|
|
77
|
+
commit: stringAt(run, 'headSha') ?? null,
|
|
76
78
|
};
|
|
77
79
|
}
|
|
78
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../../../src/adapters/ci/github-actions/ci.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,
|
|
1
|
+
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../../../src/adapters/ci/github-actions/ci.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,uFAAuF;AACvF,iFAAiF;AACjF,iFAAiF;AACjF,sFAAsF;AACtF,eAAe;AAMf,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,MAAM,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC;AACnC,MAAM,KAAK,GAAG,EAAE,SAAS,EAAE,MAAM,EAAW,CAAC;AAC7C,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACnF,MAAM,MAAM,GAAG,0DAA0D,CAAC;AAE1E,oFAAoF;AACpF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACtF,MAAM,WAAW,GAA0C;IACzD,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,SAAS;IAC1B,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,WAAW;CACrB,CAAC;AAEF,MAAM,OAAO,eAAe;IAYG;IAXpB,EAAE,GAAG,EAAE,CAAC;IACR,UAAU,GAAG,IAAa,CAAC;IACnB,QAAQ,GAAG,IAAI,gBAAgB,CAAC;QAC/C,EAAE,EAAE,EAAE;QACN,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,oDAAoD;QAC3D,aAAa,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;QACvD,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;QAC1B,KAAK,EAAE,EAAE,KAAK,EAAE,qCAAqC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE;KACpF,CAAC,CAAC;IAEH,YAA6B,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAEjD,MAAM,CAAC,IAAU;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAU;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAU,EAAE,KAAiB;QAC3C,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,mBAAmB,QAAQ,OAAO,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5F,MAAM,IAAI,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7C;YACE,KAAK;YACL,MAAM;YACN,QAAQ;YACR,UAAU;YACV,YAAY;YACZ,QAAQ;YACR,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,SAAS;YACT,GAAG;YACH,QAAQ;YACR,MAAM;SACP,EACD,KAAK,CACN,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,MAAM,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;QAClD,kEAAkE;QAClE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ;YAAE,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChG,OAAO;YACL,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC;YACrB,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC;YACrB,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,IAAI;YAC3E,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI;YACjC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI;SACzC,CAAC;IACJ,CAAC;CACF;AAED,qFAAqF;AACrF,gBAAgB;AAChB,SAAS,SAAS,CAAC,IAAU;IAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5B,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,QAAQ,CAAC,GAA4B;IAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC;AACrE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// GitHub Actions through gh: one sign-in, shared with the github code host; each
|
|
2
|
-
// environment names the workflow
|
|
2
|
+
// environment names the workflow and trigger that build it, and may name the branch.
|
|
3
3
|
import { BINARY, GH_RECIPES, qualifiedRepository } from '../../github/gh.js';
|
|
4
4
|
import { GitHubActionsCi, ID } from './ci.js';
|
|
5
5
|
export const githubActionsProvider = {
|
|
@@ -18,7 +18,7 @@ export const githubActionsProvider = {
|
|
|
18
18
|
{ name: 'workflow', desc: 'workflow file name or name, e.g. ci.yml', required: true },
|
|
19
19
|
{
|
|
20
20
|
name: 'branch',
|
|
21
|
-
desc: 'only runs of this branch; without it,
|
|
21
|
+
desc: 'only runs of this branch; without it, release check counts the branch it checks',
|
|
22
22
|
required: false,
|
|
23
23
|
},
|
|
24
24
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/adapters/ci/github-actions/provider.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/adapters/ci/github-actions/provider.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,qFAAqF;AAIrF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,EAAE,EAAE,EAAE;IACN,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,uGAAuG;YAC7G,QAAQ,EAAE,IAAI;SACf;KACF;IACD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,yCAAyC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrF;YACE,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,iFAAiF;YACvF,QAAQ,EAAE,KAAK;SAChB;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,oEAAoE;YAC1E,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5F,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;CACpD,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// Jenkins through jenkins-cli: coordinates and probe come from the shared
|
|
2
2
|
// template; the one query reads a job's latest build. A job that is not
|
|
3
|
-
// there is an answer (undefined), a job that cannot be read is an error.
|
|
3
|
+
// there is an answer (undefined), a job that cannot be read is an error. A job
|
|
4
|
+
// path is already one branch's job, so the branch being checked changes
|
|
5
|
+
// nothing here. jenkins-cli names the commit a build checked out from 0.12.0
|
|
6
|
+
// on, and only when it can tell the job's own checkout apart; otherwise the
|
|
7
|
+
// commit stays unknown.
|
|
4
8
|
import { EXIT, FamilyCli, objectOf, queryFailed, stringAt, unreadableError, } from '../../family/cli.js';
|
|
5
9
|
import { TemplatePlatform } from '../../platform/template-platform.js';
|
|
6
10
|
export const BINARY = 'jenkins-cli';
|
|
@@ -52,6 +56,7 @@ export class JenkinsCi {
|
|
|
52
56
|
status: statusOf(data),
|
|
53
57
|
startedAt: stringAt(data, 'started_at') ?? null,
|
|
54
58
|
url: stringAt(data, 'url') ?? null,
|
|
59
|
+
commit: stringAt(objectOf(data['revision']) ?? {}, 'sha') ?? null,
|
|
55
60
|
};
|
|
56
61
|
}
|
|
57
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../../../src/adapters/ci/jenkins-cli/ci.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../../../src/adapters/ci/jenkins-cli/ci.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,11 @@ export const JENKINS_RECIPES = [
|
|
|
9
9
|
title: 'Log in to Jenkins',
|
|
10
10
|
instructions: 'Prompts for your user name and an API token (Jenkins: your profile → Configure → API Token).',
|
|
11
11
|
run: ['auth', 'login'],
|
|
12
|
-
|
|
12
|
+
// `auth status` exits zero when nobody is signed in, so only `authenticated` tells.
|
|
13
|
+
verify: {
|
|
14
|
+
command: ['auth', 'status'],
|
|
15
|
+
json: { path: 'authenticated', equals: true, reason: 'error' },
|
|
16
|
+
},
|
|
13
17
|
},
|
|
14
18
|
];
|
|
15
19
|
//# sourceMappingURL=recipes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../../../src/adapters/ci/jenkins-cli/recipes.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAIvE,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,mBAAmB;QAC1B,YAAY,EACV,8FAA8F;QAChG,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QACtB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../../../src/adapters/ci/jenkins-cli/recipes.ts"],"names":[],"mappings":"AAAA,uEAAuE;AAIvE,MAAM,CAAC,MAAM,eAAe,GAA2B;IACrD;QACE,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,mBAAmB;QAC1B,YAAY,EACV,8FAA8F;QAChG,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QACtB,oFAAoF;QACpF,MAAM,EAAE;YACN,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC3B,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;SAC/D;KACF;CACF,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
// Kubernetes through kubectl, read-only by construction:
|
|
2
|
-
//
|
|
3
|
-
// contexts; a test pins that.
|
|
1
|
+
// Kubernetes through kubectl, read-only by construction: every generated vector leads
|
|
2
|
+
// with one of READ_ONLY_VERBS, and a test pins that leading verb.
|
|
4
3
|
import { TemplatePlatform } from '../../platform/template-platform.js';
|
|
5
4
|
import { KUBECTL_RECIPES } from './recipes.js';
|
|
6
5
|
export const READ_ONLY_VERBS = ['get', 'describe', 'logs', 'top', 'auth', 'config'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/adapters/cluster/kubectl/provider.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../src/adapters/cluster/kubectl/provider.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,kEAAkE;AAIlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAE7F,MAAM,CAAC,MAAM,eAAe,GAAgC;IAC1D,EAAE,EAAE,SAAS;IACb,UAAU,EAAE,SAAS;IACrB,iBAAiB,EAAE,CAAC,MAAM,CAAC;IAC3B,KAAK,EAAE,CAAC,SAAS,CAAC;IAClB,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,sCAAsC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpF,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,qCAAqC,EAAE,QAAQ,EAAE,IAAI,EAAE;QAChF;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,qEAAqE;YAC3E,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,MAAM,EAAE,GAAG,EAAE,CACX,IAAI,gBAAgB,CAAC;QACnB,EAAE,EAAE,SAAS;QACb,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,kCAAkC;QACzC,OAAO,EAAE;YACP,SAAS;YACT,cAAc;YACd,cAAc;YACd,WAAW;YACX,WAAW;YACX,KAAK;YACL,MAAM;YACN,IAAI;YACJ,aAAa;SACd;QACD,KAAK,EAAE;YACL,KAAK,EAAE,uBAAuB;YAC9B,OAAO,EAAE;gBACP,SAAS;gBACT,cAAc;gBACd,cAAc;gBACd,WAAW;gBACX,WAAW;gBACX,KAAK;gBACL,WAAW;gBACX,IAAI;gBACJ,aAAa;aACd;SACF;KACF,CAAC;CACL,CAAC"}
|
|
@@ -1,32 +1,10 @@
|
|
|
1
|
-
// Contribution calls
|
|
2
|
-
|
|
3
|
-
import { DevkitError } from '../../../domain/errors.js';
|
|
4
|
-
import { EXIT, queryFailed } from '../../family/cli.js';
|
|
1
|
+
// Contribution calls through bitbucket-cli; the failure rules are every code host's.
|
|
2
|
+
import { callContribution as familyCall, contributionFailed as failed, } from '../../family/contribution.js';
|
|
5
3
|
import { BINARY } from './client.js';
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
const call = await cli.call(args, { timeoutMs: 15000 });
|
|
9
|
-
if (call.code === EXIT.auth)
|
|
10
|
-
throw prerequisite('LOGIN_REQUIRED', 'Sign in to the code host', `fx login ${BINARY}`);
|
|
11
|
-
return call;
|
|
12
|
-
}
|
|
13
|
-
catch (error) {
|
|
14
|
-
if (error instanceof DevkitError && error.code === 'TOOL_MISSING')
|
|
15
|
-
throw prerequisite('TOOL_MISSING', 'Install the code-host companion CLI', `fx tool install ${BINARY}`);
|
|
16
|
-
throw error;
|
|
17
|
-
}
|
|
4
|
+
export function callContribution({ cli, args }) {
|
|
5
|
+
return familyCall(BINARY, () => cli.call(args, { timeoutMs: 15000 }));
|
|
18
6
|
}
|
|
19
7
|
export function contributionFailed(call) {
|
|
20
|
-
return
|
|
21
|
-
}
|
|
22
|
-
function prerequisite(code, title, command) {
|
|
23
|
-
return new DevkitError(code === 'LOGIN_REQUIRED' ? 'auth' : 'config', code, title, {
|
|
24
|
-
nextSteps: [command],
|
|
25
|
-
handoff: {
|
|
26
|
-
summary: title,
|
|
27
|
-
command,
|
|
28
|
-
userSteps: [{ id: 'source-code-host', kind: 'manual', title }],
|
|
29
|
-
},
|
|
30
|
-
});
|
|
8
|
+
return failed(BINARY, call);
|
|
31
9
|
}
|
|
32
10
|
//# sourceMappingURL=contribution-call.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contribution-call.js","sourceRoot":"","sources":["../../../../src/adapters/code-host/bitbucket-cli/contribution-call.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"contribution-call.js","sourceRoot":"","sources":["../../../../src/adapters/code-host/bitbucket-cli/contribution-call.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAGrF,OAAO,EACL,gBAAgB,IAAI,UAAU,EAC9B,kBAAkB,IAAI,MAAM,GAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAmC,MAAM,aAAa,CAAC;AAOtE,MAAM,UAAU,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAoB;IAC9D,OAAO,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAa;IAC9C,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC"}
|