akm-cli 0.8.0-rc2 → 0.8.1
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/{.github/CHANGELOG.md → CHANGELOG.md} +238 -3
- package/README.md +22 -6
- package/SECURITY.md +93 -0
- package/dist/assets/help/help-accept.md +12 -0
- package/dist/assets/help/help-improve.md +81 -0
- package/dist/{commands → assets}/help/help-proposals.md +7 -4
- package/dist/assets/help/help-reject.md +11 -0
- package/dist/{output → assets/hints}/cli-hints-full.md +60 -32
- package/dist/{output → assets/hints}/cli-hints-short.md +10 -7
- package/dist/assets/profiles/default.json +15 -0
- package/dist/assets/profiles/graph-refresh.json +13 -0
- package/dist/assets/profiles/memory-focus.json +12 -0
- package/dist/assets/profiles/quick.json +15 -0
- package/dist/assets/profiles/thorough.json +15 -0
- package/dist/assets/prompts/extract-session.md +80 -0
- package/dist/assets/prompts/graph-extract-user-prompt.md +35 -0
- package/dist/assets/tasks/graph-refresh-weekly.yml +10 -0
- package/dist/cli/config-migrate.js +144 -0
- package/dist/cli/config-validate.js +39 -0
- package/dist/cli/confirm.js +73 -0
- package/dist/cli/parse-args.js +93 -3
- package/dist/cli/shared.js +129 -0
- package/dist/cli.js +2141 -1268
- package/dist/commands/add-cli.js +279 -0
- package/dist/commands/agent-dispatch.js +20 -12
- package/dist/commands/agent-support.js +11 -5
- package/dist/commands/completions.js +3 -0
- package/dist/commands/config-cli.js +129 -517
- package/dist/commands/consolidate.js +1557 -147
- package/dist/commands/curate.js +44 -3
- package/dist/commands/db-cli.js +23 -0
- package/dist/commands/distill-promotion-policy.js +5 -3
- package/dist/commands/distill.js +906 -100
- package/dist/commands/env.js +213 -0
- package/dist/commands/eval-cases.js +3 -0
- package/dist/commands/events.js +3 -0
- package/dist/commands/extract-cli.js +127 -0
- package/dist/commands/extract-prompt.js +217 -0
- package/dist/commands/extract.js +477 -0
- package/dist/commands/feedback-cli.js +331 -0
- package/dist/commands/graph.js +260 -5
- package/dist/commands/health.js +1042 -55
- package/dist/commands/history.js +51 -16
- package/dist/commands/improve-auto-accept.js +97 -0
- package/dist/commands/improve-cli.js +236 -0
- package/dist/commands/improve-profiles.js +138 -0
- package/dist/commands/improve-result-file.js +167 -0
- package/dist/commands/improve.js +1736 -346
- package/dist/commands/info.js +26 -28
- package/dist/commands/init.js +49 -1
- package/dist/commands/installed-stashes.js +6 -23
- package/dist/commands/knowledge.js +3 -0
- package/dist/commands/lint/agent-linter.js +3 -0
- package/dist/commands/lint/base-linter.js +199 -5
- package/dist/commands/lint/command-linter.js +3 -0
- package/dist/commands/lint/default-linter.js +3 -0
- package/dist/commands/lint/env-key-rules.js +154 -0
- package/dist/commands/lint/index.js +92 -3
- package/dist/commands/lint/knowledge-linter.js +3 -0
- package/dist/commands/lint/markdown-insertion.js +343 -0
- package/dist/commands/lint/memory-linter.js +3 -0
- package/dist/commands/lint/registry.js +3 -0
- package/dist/commands/lint/skill-linter.js +3 -0
- package/dist/commands/lint/task-linter.js +15 -12
- package/dist/commands/lint/types.js +3 -0
- package/dist/commands/lint/workflow-linter.js +3 -0
- package/dist/commands/lint.js +3 -0
- package/dist/commands/migration-help.js +5 -2
- package/dist/commands/proposal-drain-policies.js +128 -0
- package/dist/commands/proposal-drain.js +477 -0
- package/dist/commands/proposal.js +60 -6
- package/dist/commands/propose.js +24 -19
- package/dist/commands/reflect.js +1004 -94
- package/dist/commands/registry-cli.js +150 -0
- package/dist/commands/registry-search.js +3 -0
- package/dist/commands/remember-cli.js +257 -0
- package/dist/commands/remember.js +15 -6
- package/dist/commands/schema-repair.js +88 -15
- package/dist/commands/search.js +99 -14
- package/dist/commands/secret.js +173 -0
- package/dist/commands/self-update.js +3 -0
- package/dist/commands/show.js +32 -13
- package/dist/commands/source-add.js +7 -35
- package/dist/commands/source-clone.js +3 -0
- package/dist/commands/source-manage.js +3 -0
- package/dist/commands/tasks.js +161 -95
- package/dist/commands/url-checker.js +3 -0
- package/dist/core/action-contributors.js +3 -0
- package/dist/core/asset-ref.js +13 -2
- package/dist/core/asset-registry.js +9 -2
- package/dist/core/asset-serialize.js +88 -0
- package/dist/core/asset-spec.js +61 -5
- package/dist/core/common.js +93 -5
- package/dist/core/concurrent.js +3 -0
- package/dist/core/config-io.js +347 -0
- package/dist/core/config-migration.js +622 -0
- package/dist/core/config-schema.js +558 -0
- package/dist/core/config-sources.js +108 -0
- package/dist/core/config-types.js +4 -0
- package/dist/core/config-walker.js +337 -0
- package/dist/core/config.js +366 -1077
- package/dist/core/errors.js +42 -20
- package/dist/core/events.js +31 -25
- package/dist/core/file-lock.js +104 -0
- package/dist/core/frontmatter.js +75 -10
- package/dist/core/lesson-lint.js +3 -0
- package/dist/core/markdown.js +3 -0
- package/dist/core/memory-belief.js +62 -0
- package/dist/core/memory-contradiction-detect.js +274 -0
- package/dist/core/memory-improve.js +142 -14
- package/dist/core/parse.js +3 -0
- package/dist/core/paths.js +218 -50
- package/dist/core/proposal-quality-validators.js +380 -0
- package/dist/core/proposal-validators.js +11 -3
- package/dist/core/proposals.js +464 -5
- package/dist/core/state-db.js +349 -56
- package/dist/core/text-truncation.js +107 -0
- package/dist/core/time.js +3 -0
- package/dist/core/tty.js +59 -0
- package/dist/core/warn.js +7 -2
- package/dist/core/write-source.js +12 -0
- package/dist/indexer/db-backup.js +391 -0
- package/dist/indexer/db-search.js +136 -28
- package/dist/indexer/db.js +661 -166
- package/dist/indexer/ensure-index.js +3 -0
- package/dist/indexer/file-context.js +3 -0
- package/dist/indexer/graph-boost.js +162 -40
- package/dist/indexer/graph-db.js +241 -51
- package/dist/indexer/graph-dedup.js +3 -7
- package/dist/indexer/graph-extraction.js +242 -149
- package/dist/indexer/index-context.js +3 -9
- package/dist/indexer/indexer.js +86 -16
- package/dist/indexer/llm-cache.js +24 -19
- package/dist/indexer/manifest.js +3 -0
- package/dist/indexer/matchers.js +184 -11
- package/dist/indexer/memory-inference.js +94 -50
- package/dist/indexer/metadata-contributors.js +3 -0
- package/dist/indexer/metadata.js +110 -50
- package/dist/indexer/path-resolver.js +3 -0
- package/dist/indexer/project-context.js +192 -0
- package/dist/indexer/ranking-contributors.js +134 -7
- package/dist/indexer/ranking.js +8 -1
- package/dist/indexer/search-fields.js +5 -9
- package/dist/indexer/search-hit-enrichers.js +91 -2
- package/dist/indexer/search-source.js +20 -1
- package/dist/indexer/semantic-status.js +4 -1
- package/dist/indexer/staleness-detect.js +447 -0
- package/dist/indexer/usage-events.js +12 -9
- package/dist/indexer/walker.js +3 -0
- package/dist/integrations/agent/builders.js +135 -0
- package/dist/integrations/agent/config.js +121 -401
- package/dist/integrations/agent/detect.js +3 -0
- package/dist/integrations/agent/index.js +6 -14
- package/dist/integrations/agent/model-aliases.js +55 -0
- package/dist/integrations/agent/profiles.js +3 -0
- package/dist/integrations/agent/prompts.js +137 -8
- package/dist/integrations/agent/runner.js +208 -0
- package/dist/integrations/agent/sdk-runner.js +8 -2
- package/dist/integrations/agent/spawn.js +54 -14
- package/dist/integrations/github.js +3 -0
- package/dist/integrations/lockfile.js +22 -51
- package/dist/integrations/session-logs/index.js +4 -0
- package/dist/integrations/session-logs/inline-refs.js +35 -0
- package/dist/integrations/session-logs/pre-filter.js +152 -0
- package/dist/integrations/session-logs/providers/claude-code.js +226 -0
- package/dist/integrations/session-logs/providers/opencode.js +231 -25
- package/dist/integrations/session-logs/types.js +3 -0
- package/dist/llm/call-ai.js +14 -26
- package/dist/llm/client.js +16 -2
- package/dist/llm/embedder.js +20 -29
- package/dist/llm/embedders/cache.js +3 -7
- package/dist/llm/embedders/local.js +42 -1
- package/dist/llm/embedders/remote.js +20 -8
- package/dist/llm/embedders/types.js +3 -7
- package/dist/llm/feature-gate.js +92 -56
- package/dist/llm/graph-extract.js +402 -31
- package/dist/llm/index-passes.js +44 -29
- package/dist/llm/memory-infer.js +30 -2
- package/dist/llm/metadata-enhance.js +3 -7
- package/dist/output/cli-hints.js +7 -4
- package/dist/output/context.js +60 -8
- package/dist/output/renderers.js +170 -194
- package/dist/output/shapes/curate.js +56 -0
- package/dist/output/shapes/distill.js +10 -0
- package/dist/output/shapes/env-list.js +19 -0
- package/dist/output/shapes/events.js +11 -0
- package/dist/output/shapes/helpers.js +424 -0
- package/dist/output/shapes/history.js +7 -0
- package/dist/output/shapes/passthrough.js +105 -0
- package/dist/output/shapes/proposal-accept.js +7 -0
- package/dist/output/shapes/proposal-diff.js +7 -0
- package/dist/output/shapes/proposal-list.js +7 -0
- package/dist/output/shapes/proposal-producer.js +11 -0
- package/dist/output/shapes/proposal-reject.js +7 -0
- package/dist/output/shapes/proposal-show.js +7 -0
- package/dist/output/shapes/registry-search.js +6 -0
- package/dist/output/shapes/registry.js +30 -0
- package/dist/output/shapes/search.js +6 -0
- package/dist/output/shapes/secret-list.js +19 -0
- package/dist/output/shapes/show.js +6 -0
- package/dist/output/shapes/vault-list.js +19 -0
- package/dist/output/shapes.js +51 -549
- package/dist/output/text/add.js +6 -0
- package/dist/output/text/clone.js +6 -0
- package/dist/output/text/config.js +6 -0
- package/dist/output/text/curate.js +6 -0
- package/dist/output/text/distill.js +7 -0
- package/dist/output/text/enable-disable.js +7 -0
- package/dist/output/text/events.js +10 -0
- package/dist/output/text/feedback.js +6 -0
- package/dist/output/text/helpers.js +1059 -0
- package/dist/output/text/history.js +7 -0
- package/dist/output/text/import.js +6 -0
- package/dist/output/text/index.js +6 -0
- package/dist/output/text/info.js +6 -0
- package/dist/output/text/init.js +6 -0
- package/dist/output/text/list.js +6 -0
- package/dist/output/text/proposal-producer.js +8 -0
- package/dist/output/text/proposal.js +12 -0
- package/dist/output/text/registry-commands.js +11 -0
- package/dist/output/text/registry.js +30 -0
- package/dist/output/text/remember.js +6 -0
- package/dist/output/text/remove.js +6 -0
- package/dist/output/text/save.js +6 -0
- package/dist/output/text/search.js +6 -0
- package/dist/output/text/show.js +6 -0
- package/dist/output/text/update.js +6 -0
- package/dist/output/text/upgrade.js +6 -0
- package/dist/output/text/vault.js +16 -0
- package/dist/output/text/wiki.js +15 -0
- package/dist/output/text/workflow.js +14 -0
- package/dist/output/text.js +44 -1329
- package/dist/registry/build-index.js +3 -0
- package/dist/registry/create-provider-registry.js +3 -0
- package/dist/registry/factory.js +4 -1
- package/dist/registry/origin-resolve.js +3 -0
- package/dist/registry/providers/index.js +3 -0
- package/dist/registry/providers/skills-sh.js +11 -2
- package/dist/registry/providers/static-index.js +10 -1
- package/dist/registry/providers/types.js +3 -24
- package/dist/registry/resolve.js +11 -16
- package/dist/registry/types.js +3 -0
- package/dist/scripts/migrate-storage.js +17767 -0
- package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +9031 -0
- package/dist/scripts/migrations/v16-to-v17.js +141 -0
- package/dist/setup/detect.js +3 -0
- package/dist/setup/ripgrep-install.js +3 -0
- package/dist/setup/ripgrep-resolve.js +3 -0
- package/dist/setup/setup.js +306 -67
- package/dist/setup/steps.js +3 -15
- package/dist/sources/include.js +3 -0
- package/dist/sources/provider-factory.js +3 -11
- package/dist/sources/provider.js +3 -20
- package/dist/sources/providers/filesystem.js +19 -23
- package/dist/sources/providers/git.js +171 -21
- package/dist/sources/providers/index.js +3 -0
- package/dist/sources/providers/install-types.js +3 -13
- package/dist/sources/providers/npm.js +3 -4
- package/dist/sources/providers/provider-utils.js +3 -0
- package/dist/sources/providers/sync-from-ref.js +3 -11
- package/dist/sources/providers/tar-utils.js +3 -0
- package/dist/sources/providers/website.js +18 -22
- package/dist/sources/resolve.js +3 -0
- package/dist/sources/types.js +3 -0
- package/dist/sources/website-ingest.js +3 -0
- package/dist/tasks/backends/cron.js +3 -0
- package/dist/tasks/backends/exec-utils.js +3 -0
- package/dist/tasks/backends/index.js +3 -11
- package/dist/tasks/backends/launchd.js +4 -1
- package/dist/tasks/backends/schtasks.js +4 -1
- package/dist/tasks/parser.js +51 -38
- package/dist/tasks/resolveAkmBin.js +3 -0
- package/dist/tasks/runner.js +35 -9
- package/dist/tasks/schedule.js +20 -1
- package/dist/tasks/schema.js +5 -3
- package/dist/tasks/validator.js +6 -3
- package/dist/version.js +3 -0
- package/dist/wiki/wiki-templates.js +6 -3
- package/dist/wiki/wiki.js +4 -1
- package/dist/workflows/authoring.js +4 -1
- package/dist/workflows/cli.js +3 -0
- package/dist/workflows/db.js +140 -10
- package/dist/workflows/document-cache.js +3 -10
- package/dist/workflows/parser.js +3 -0
- package/dist/workflows/renderer.js +3 -0
- package/dist/workflows/runs.js +18 -1
- package/dist/workflows/schema.js +3 -0
- package/dist/workflows/scope-key.js +3 -0
- package/dist/workflows/validator.js +5 -9
- package/docs/README.md +7 -2
- package/docs/data-and-telemetry.md +225 -0
- package/docs/migration/release-notes/0.7.5.md +2 -2
- package/docs/migration/release-notes/0.8.0.md +57 -5
- package/docs/migration/v0.7-to-v0.8.md +1378 -0
- package/package.json +28 -11
- package/.github/LICENSE +0 -374
- package/dist/commands/help/help-accept.md +0 -9
- package/dist/commands/help/help-improve.md +0 -53
- package/dist/commands/help/help-reject.md +0 -8
- package/dist/commands/install-audit.js +0 -385
- package/dist/commands/vault.js +0 -310
- package/dist/indexer/match-contributors.js +0 -141
- package/dist/integrations/agent/pipeline.js +0 -39
- package/dist/integrations/agent/runners.js +0 -31
- package/dist/llm/prompts/graph-extract-user-prompt.md +0 -12
- /package/dist/{tasks → assets}/backends/launchd-template.xml +0 -0
- /package/dist/{tasks → assets}/backends/schtasks-template.xml +0 -0
- /package/dist/{commands → assets}/help/help-propose.md +0 -0
- /package/dist/{wiki → assets/wiki}/index-template.md +0 -0
- /package/dist/{wiki → assets/wiki}/ingest-workflow-template.md +0 -0
- /package/dist/{wiki → assets/wiki}/log-template.md +0 -0
- /package/dist/{wiki → assets/wiki}/schema-template.md +0 -0
- /package/dist/{workflows → assets/workflows}/workflow-template.md +0 -0
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
1
4
|
/**
|
|
2
5
|
* Build the v2 JSON registry index consumed by the `static-index` registry
|
|
3
6
|
* provider. This module emits artifacts that conform to the v2 schema; the
|
package/dist/registry/factory.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
1
4
|
/**
|
|
2
5
|
* Registry provider factory map.
|
|
3
6
|
*
|
|
4
7
|
* Maps registry provider type identifiers (e.g. "static-index", "skills-sh")
|
|
5
8
|
* to factory functions that create RegistryProvider instances.
|
|
6
9
|
*
|
|
7
|
-
* "Registry" here refers to the
|
|
10
|
+
* "Registry" here refers to the stash discovery registries (static index files,
|
|
8
11
|
* skills.sh API) — not to be confused with the source provider factory map in
|
|
9
12
|
* `sources/provider-factory.ts` or the installed-source operations in
|
|
10
13
|
* `installed-stashes.ts`.
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
1
4
|
import path from "node:path";
|
|
2
5
|
import { parseRegistryRef } from "./resolve";
|
|
3
6
|
/**
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
1
4
|
import { fetchWithRetry } from "../../core/common";
|
|
5
|
+
import { rethrowIfTestIsolationError } from "../../core/errors";
|
|
2
6
|
import { closeDatabase, getRegistryIndexCache, openDatabase, upsertRegistryIndexCache } from "../../indexer/db";
|
|
3
7
|
import { registerProvider } from "../factory";
|
|
4
8
|
// ── Constants ───────────────────────────────────────────────────────────────
|
|
@@ -60,7 +64,7 @@ class SkillsShProvider {
|
|
|
60
64
|
/**
|
|
61
65
|
* skills.sh has no `getKit` API — every entry corresponds to a GitHub
|
|
62
66
|
* repository whose metadata we already include in the search result. We
|
|
63
|
-
* synthesize a manifest from the search hit when the caller knows the
|
|
67
|
+
* synthesize a manifest from the search hit when the caller knows the stash
|
|
64
68
|
* id; if not present in the most recent results, return null.
|
|
65
69
|
*/
|
|
66
70
|
async getKit(id) {
|
|
@@ -94,7 +98,12 @@ class SkillsShProvider {
|
|
|
94
98
|
db = openDatabase();
|
|
95
99
|
dbCacheResult = getRegistryIndexCache(db, dbCacheKey, QUERY_CACHE_TTL_MS);
|
|
96
100
|
}
|
|
97
|
-
catch {
|
|
101
|
+
catch (err) {
|
|
102
|
+
// Never mask the bun-test isolation guard as "DB unavailable" — see
|
|
103
|
+
// rethrowIfTestIsolationError in src/core/errors.ts. Without this,
|
|
104
|
+
// a leaky test silently gets a cold cache + fresh fetch instead of
|
|
105
|
+
// the loud TEST_ISOLATION_MISSING failure the guard intends.
|
|
106
|
+
rethrowIfTestIsolationError(err);
|
|
98
107
|
// index.db not available yet (pre-migration install or test env) — fall through
|
|
99
108
|
}
|
|
100
109
|
if (dbCacheResult) {
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
1
4
|
import { fetchWithRetry, jsonWithByteCap, toErrorMessage } from "../../core/common";
|
|
5
|
+
import { rethrowIfTestIsolationError } from "../../core/errors";
|
|
2
6
|
import { closeDatabase, getRegistryIndexCache, openDatabase, upsertRegistryIndexCache } from "../../indexer/db";
|
|
3
7
|
import { asString } from "../../integrations/github";
|
|
4
8
|
import { registerProvider } from "../factory";
|
|
@@ -119,7 +123,12 @@ async function loadIndex(entry) {
|
|
|
119
123
|
db = openDatabase();
|
|
120
124
|
dbCacheResult = getRegistryIndexCache(db, entry.url, CACHE_TTL_MS);
|
|
121
125
|
}
|
|
122
|
-
catch {
|
|
126
|
+
catch (err) {
|
|
127
|
+
// Never mask the bun-test isolation guard as "DB unavailable" — see
|
|
128
|
+
// rethrowIfTestIsolationError in src/core/errors.ts. Without this, a
|
|
129
|
+
// leaky test silently gets a cold cache instead of the loud
|
|
130
|
+
// TEST_ISOLATION_MISSING failure the guard intends.
|
|
131
|
+
rethrowIfTestIsolationError(err);
|
|
123
132
|
// index.db not available yet (pre-migration install or test env) — fall through
|
|
124
133
|
}
|
|
125
134
|
if (dbCacheResult) {
|
|
@@ -1,25 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* A `RegistryProvider` is a read-only catalog that lists installable kits and
|
|
5
|
-
* (optionally) previews assets within them. It is *not* a `SourceProvider`:
|
|
6
|
-
* registry providers do not materialise files to disk — they only answer
|
|
7
|
-
* discovery queries.
|
|
8
|
-
*
|
|
9
|
-
* The two built-in registry providers at v1 are:
|
|
10
|
-
*
|
|
11
|
-
* - `static-index` — reads the v2 JSON index schema (the official akm registry
|
|
12
|
-
* and any static-hosted team registry). The v2 schema is owned by this
|
|
13
|
-
* provider, not by core akm.
|
|
14
|
-
* - `skills-sh` — wraps the skills.sh REST API.
|
|
15
|
-
*
|
|
16
|
-
* Context Hub is **not** a registry provider — it is an ordinary git repository
|
|
17
|
-
* recommended via the official static-index registry (see CLAUDE.md).
|
|
18
|
-
*
|
|
19
|
-
* Note: the simple `search()` method is the v0.6 surface and remains the
|
|
20
|
-
* primary entry point used by the orchestrator. The `searchKits` /
|
|
21
|
-
* `searchAssets` / `getKit` / `canHandle` methods are the v1-spec contract
|
|
22
|
-
* (§3.1) which built-in providers also implement so the orchestrator can be
|
|
23
|
-
* iterated cleanly post-Phase 6 without reaching into provider-specific shapes.
|
|
24
|
-
*/
|
|
1
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
25
4
|
export {};
|
package/dist/registry/resolve.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
1
4
|
import { spawnSync } from "node:child_process";
|
|
2
5
|
import fs from "node:fs";
|
|
3
6
|
import os from "node:os";
|
|
@@ -340,6 +343,7 @@ async function resolveNpmArtifact(parsed) {
|
|
|
340
343
|
}
|
|
341
344
|
async function resolveGithubArtifact(parsed) {
|
|
342
345
|
const gitUrl = `https://github.com/${encodeURIComponent(parsed.owner)}/${encodeURIComponent(parsed.repo)}.git`;
|
|
346
|
+
const repoBase = `${GITHUB_API_BASE}/repos/${encodeURIComponent(parsed.owner)}/${encodeURIComponent(parsed.repo)}`;
|
|
343
347
|
// Prefer git-backed installs so private GitHub repos work with the user's
|
|
344
348
|
// normal git credential helper rather than requiring API-specific auth.
|
|
345
349
|
const gitResolvedRevision = resolveGitRevisionFromRemote(gitUrl, parsed.requestedRef);
|
|
@@ -355,18 +359,18 @@ async function resolveGithubArtifact(parsed) {
|
|
|
355
359
|
}
|
|
356
360
|
const headers = githubHeaders();
|
|
357
361
|
if (parsed.requestedRef) {
|
|
358
|
-
const commit = await tryFetchJson(`${
|
|
362
|
+
const commit = await tryFetchJson(`${repoBase}/commits/${encodeURIComponent(parsed.requestedRef)}`, headers);
|
|
359
363
|
const resolvedRevision = asString(commit?.sha) ?? parsed.requestedRef;
|
|
360
364
|
return {
|
|
361
365
|
id: parsed.id,
|
|
362
366
|
source: parsed.source,
|
|
363
367
|
ref: parsed.ref,
|
|
364
|
-
artifactUrl: `${
|
|
368
|
+
artifactUrl: `${repoBase}/tarball/${encodeURIComponent(parsed.requestedRef)}`,
|
|
365
369
|
resolvedRevision,
|
|
366
370
|
resolvedVersion: parsed.requestedRef,
|
|
367
371
|
};
|
|
368
372
|
}
|
|
369
|
-
const latestRelease = await tryFetchJson(`${
|
|
373
|
+
const latestRelease = await tryFetchJson(`${repoBase}/releases/latest`, headers);
|
|
370
374
|
if (latestRelease) {
|
|
371
375
|
const tarballUrl = asString(latestRelease.tarball_url);
|
|
372
376
|
if (tarballUrl) {
|
|
@@ -380,17 +384,17 @@ async function resolveGithubArtifact(parsed) {
|
|
|
380
384
|
};
|
|
381
385
|
}
|
|
382
386
|
}
|
|
383
|
-
const repoMeta = await fetchJson(
|
|
387
|
+
const repoMeta = await fetchJson(repoBase, headers);
|
|
384
388
|
const defaultBranch = asString(repoMeta.default_branch);
|
|
385
389
|
if (!defaultBranch) {
|
|
386
390
|
throw new Error(`Unable to resolve default branch for ${parsed.owner}/${parsed.repo}.`);
|
|
387
391
|
}
|
|
388
|
-
const commit = await tryFetchJson(`${
|
|
392
|
+
const commit = await tryFetchJson(`${repoBase}/commits/${encodeURIComponent(defaultBranch)}`, headers);
|
|
389
393
|
return {
|
|
390
394
|
id: parsed.id,
|
|
391
395
|
source: parsed.source,
|
|
392
396
|
ref: parsed.ref,
|
|
393
|
-
artifactUrl: `${
|
|
397
|
+
artifactUrl: `${repoBase}/tarball/${encodeURIComponent(defaultBranch)}`,
|
|
394
398
|
resolvedVersion: defaultBranch,
|
|
395
399
|
resolvedRevision: asString(commit?.sha) ?? defaultBranch,
|
|
396
400
|
};
|
|
@@ -407,16 +411,7 @@ function resolveGitRevisionFromRemote(url, requestedRef) {
|
|
|
407
411
|
return firstLine?.split(/\s/)[0] || undefined;
|
|
408
412
|
}
|
|
409
413
|
async function resolveGitArtifact(parsed) {
|
|
410
|
-
|
|
411
|
-
const ref = parsed.requestedRef ?? "HEAD";
|
|
412
|
-
if (parsed.requestedRef)
|
|
413
|
-
validateGitRef(parsed.requestedRef);
|
|
414
|
-
const result = spawnSync("git", ["ls-remote", parsed.url, ref], { encoding: "utf8", timeout: 30_000 });
|
|
415
|
-
let resolvedRevision;
|
|
416
|
-
if (result.status === 0) {
|
|
417
|
-
const firstLine = result.stdout.trim().split(/\r?\n/)[0];
|
|
418
|
-
resolvedRevision = firstLine?.split(/\s/)[0] || undefined;
|
|
419
|
-
}
|
|
414
|
+
const resolvedRevision = resolveGitRevisionFromRemote(parsed.url, parsed.requestedRef);
|
|
420
415
|
return {
|
|
421
416
|
id: parsed.id,
|
|
422
417
|
source: parsed.source,
|
package/dist/registry/types.js
CHANGED