@hasna/skills 0.10.75 → 0.10.77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -3
- package/bin/index.js +733 -299
- package/bin/mcp.js +113 -16
- package/bin/migrate.js +1 -1
- package/bin/server.js +36 -33
- package/bin/worker.js +4 -1
- package/dist/index.js +496 -166
- package/dist/lib/agent-codex-trust.d.ts +4 -0
- package/dist/lib/agent-integration.d.ts +3 -3
- package/dist/lib/agent-sync.d.ts +6 -4
- package/dist/lib/auth-store.d.ts +1 -1
- package/dist/lib/codex-corpus-write.d.ts +47 -6
- package/dist/lib/codex-hook-rpc.d.ts +3 -0
- package/dist/lib/codex-plugin-capability-paths.d.ts +31 -0
- package/dist/lib/credential-profile-command.d.ts +5 -0
- package/dist/lib/fleet-credentials.d.ts +11 -5
- package/dist/lib/home-adoption.d.ts +5 -5
- package/dist/lib/installer.d.ts +5 -3
- package/dist/lib/instance-credentials.d.ts +2 -0
- package/dist/lib/sign-in.d.ts +1 -1
- package/dist/runtime-prerequisites.js +1 -1
- package/dist/sdk/index.js +733 -405
- package/package.json +1 -1
package/bin/mcp.js
CHANGED
|
@@ -23,7 +23,7 @@ var package_default;
|
|
|
23
23
|
var init_package = __esm(() => {
|
|
24
24
|
package_default = {
|
|
25
25
|
name: "@hasna/skills",
|
|
26
|
-
version: "0.10.
|
|
26
|
+
version: "0.10.77",
|
|
27
27
|
description: "Skills library for AI coding agents",
|
|
28
28
|
type: "module",
|
|
29
29
|
bin: {
|
|
@@ -1087,6 +1087,10 @@ function skillsFileHasCredential(file) {
|
|
|
1087
1087
|
return false;
|
|
1088
1088
|
return /^\s*(?:export\s+)?(?:HASNA_SKILLS_API_KEY|SKILLS_API_KEY|HASNA_SKILLS_API_KEY_REF)\s*=\s*\S/m.test(text);
|
|
1089
1089
|
}
|
|
1090
|
+
function skillsFileHasVaultReference(file) {
|
|
1091
|
+
const text = readMetadataText(file);
|
|
1092
|
+
return text !== null && /^\s*(?:export\s+)?HASNA_SKILLS_API_KEY_REF\s*=\s*\S/m.test(text);
|
|
1093
|
+
}
|
|
1090
1094
|
var SKILLS_BOUND_API_URL = "HASNA_SKILLS_BOUND_API_URL";
|
|
1091
1095
|
var init_instance_credentials = __esm(() => {
|
|
1092
1096
|
init_transport();
|
|
@@ -1121,6 +1125,20 @@ var init_local_opt_in = __esm(() => {
|
|
|
1121
1125
|
// src/lib/product-default.ts
|
|
1122
1126
|
var SKILLS_PRODUCT_DEFAULT_ORIGIN = "https://skills.md";
|
|
1123
1127
|
|
|
1128
|
+
// src/lib/credential-profile-command.ts
|
|
1129
|
+
function skillsShellArgument(value) {
|
|
1130
|
+
return /^[A-Za-z0-9._:/-]+$/.test(value) ? value : `'${value.replace(/'/g, "'\\''")}'`;
|
|
1131
|
+
}
|
|
1132
|
+
function skillsApiUrlEnvironment(origin) {
|
|
1133
|
+
return urlKeys.map((name) => `${name}=${skillsShellArgument(origin)}`).join(" ");
|
|
1134
|
+
}
|
|
1135
|
+
var urlKeys;
|
|
1136
|
+
var init_credential_profile_command = __esm(() => {
|
|
1137
|
+
init_instance_credentials();
|
|
1138
|
+
init_transport();
|
|
1139
|
+
urlKeys = clientTransportEnvKeys("skills").apiUrlKeys;
|
|
1140
|
+
});
|
|
1141
|
+
|
|
1124
1142
|
// src/lib/fleet-credentials.ts
|
|
1125
1143
|
var exports_fleet_credentials = {};
|
|
1126
1144
|
__export(exports_fleet_credentials, {
|
|
@@ -1145,6 +1163,8 @@ __export(exports_fleet_credentials, {
|
|
|
1145
1163
|
gatewaySignInRefusal: () => gatewaySignInRefusal,
|
|
1146
1164
|
credentialPairing: () => credentialPairing,
|
|
1147
1165
|
configuredSkillsApiUrl: () => configuredSkillsApiUrl,
|
|
1166
|
+
captureSkillsSignInTarget: () => captureSkillsSignInTarget,
|
|
1167
|
+
assertSkillsSignInCredentialReplaceable: () => assertSkillsSignInCredentialReplaceable,
|
|
1148
1168
|
SkillsFleetCredentialError: () => SkillsFleetCredentialError,
|
|
1149
1169
|
SKILLS_LOCAL_OPT_IN_ENV_KEYS: () => SKILLS_LOCAL_OPT_IN_ENV_KEYS,
|
|
1150
1170
|
SKILLS_CREDENTIAL_TIERS: () => SKILLS_CREDENTIAL_TIERS,
|
|
@@ -1450,8 +1470,24 @@ function gatewaySignInRefusal(target) {
|
|
|
1450
1470
|
if (normalizeSkillsApiOrigin(target.origin) !== normalizeSkillsApiOrigin(defaultFleetGatewayBaseUrl(SKILLS_APP)))
|
|
1451
1471
|
return null;
|
|
1452
1472
|
const cause = target.credentialSource ? `${target.credentialSource} holds a Skills credential for the internal gateway` : target.source === "--url" ? "--url names the internal gateway" : `${target.source} selects the internal gateway`;
|
|
1453
|
-
const
|
|
1454
|
-
return new SkillsFleetCredentialError(`${cause}, which has no sign-in service. Nothing was sent
|
|
1473
|
+
const command = (SKILLS_API_URL_ENV_KEYS.includes(target.source) ? `${skillsApiUrlEnvironment(SKILLS_PRODUCT_DEFAULT_ORIGIN)} ` : "") + "skills --profile <new-profile> login";
|
|
1474
|
+
return new SkillsFleetCredentialError(`${cause}, which has no sign-in service. Nothing was sent. ` + `Keep the fleet configuration and use a separate profile for product sign-in: ${command}.`, "GATEWAY_AUTH_UNAVAILABLE", [command]);
|
|
1475
|
+
}
|
|
1476
|
+
function assertSkillsSignInCredentialReplaceable(env = process.env, profile) {
|
|
1477
|
+
const files = skillsProfileCredentialFiles(env, profile);
|
|
1478
|
+
const verifyUnchanged = captureSkillsCredentialFiles(files);
|
|
1479
|
+
const gateway = normalizeSkillsApiOrigin(defaultFleetGatewayBaseUrl(SKILLS_APP));
|
|
1480
|
+
const command = (SKILLS_API_URL_ENV_KEYS.some((name) => env[name]?.trim()) ? `${skillsApiUrlEnvironment(SKILLS_PRODUCT_DEFAULT_ORIGIN)} ` : "") + "skills --profile <new-profile> login";
|
|
1481
|
+
for (const file of files) {
|
|
1482
|
+
if (!skillsFileHasCredential(file))
|
|
1483
|
+
continue;
|
|
1484
|
+
const metadata = readSkillsInstanceMetadata(file);
|
|
1485
|
+
const instance = metadata.binding ?? metadata.apiUrl;
|
|
1486
|
+
if (skillsFileHasVaultReference(file) || !instance || normalizeSkillsApiOrigin(instance) === gateway) {
|
|
1487
|
+
throw new SkillsFleetCredentialError("The selected profile contains a protected fleet credential or vault reference. Nothing was sent or changed. " + `Use a separate profile for product sign-in: ${command}.`, "STORED_CREDENTIAL_PROTECTED", [command]);
|
|
1488
|
+
}
|
|
1489
|
+
}
|
|
1490
|
+
verifyUnchanged();
|
|
1455
1491
|
}
|
|
1456
1492
|
function explicitSignInOrigin(url) {
|
|
1457
1493
|
if (!url.trim() || /[\x00-\x1f\x7f]/.test(url)) {
|
|
@@ -1479,13 +1515,15 @@ function resolveSkillsSignInOrigin(env = process.env, options = {}, explicitUrl)
|
|
|
1479
1515
|
const snapshot = snapshotSkillsEnvironment(env);
|
|
1480
1516
|
const resolvedOptions = snapshotSkillsOptions(env, options);
|
|
1481
1517
|
const profile = resolvedOptions.credentials?.profile;
|
|
1518
|
+
assertSkillsSignInCredentialReplaceable(snapshot, profile);
|
|
1482
1519
|
const configured = configuredSkillsApiUrl(snapshot, resolvedOptions.credentials?.keychain, profile);
|
|
1483
1520
|
const declared = configured && configured.source !== "default" ? configured : null;
|
|
1484
1521
|
if (explicitUrl !== undefined) {
|
|
1485
1522
|
const origin = explicitSignInOrigin(explicitUrl);
|
|
1486
1523
|
const storedHere = declared ? skillsProfileCredentialFiles(snapshot, profile).includes(declared.source) : false;
|
|
1487
1524
|
if (declared && !storedHere && normalizeSkillsApiOrigin(declared.value) !== origin) {
|
|
1488
|
-
|
|
1525
|
+
const command = `${skillsApiUrlEnvironment(origin)} skills --profile <new-profile> login`;
|
|
1526
|
+
throw new SkillsFleetCredentialError(`--url ${origin} conflicts with ${declared.source}, which outranks the saved configuration and would ` + `shadow the key this sign-in stores. Keep the existing configuration and use a separate process and profile: ${command}.`, "INVALID_API_URL", [command]);
|
|
1489
1527
|
}
|
|
1490
1528
|
return { origin, source: "--url" };
|
|
1491
1529
|
}
|
|
@@ -1517,6 +1555,14 @@ function resolveSkillsSignInOrigin(env = process.env, options = {}, explicitUrl)
|
|
|
1517
1555
|
throw error;
|
|
1518
1556
|
}
|
|
1519
1557
|
}
|
|
1558
|
+
function captureSkillsSignInTarget(env = process.env, options = {}, explicitUrl) {
|
|
1559
|
+
const snapshot = snapshotSkillsEnvironment(env);
|
|
1560
|
+
const profile = options.credentials?.profile ?? selectedCliSkillsCredentialProfile();
|
|
1561
|
+
const unchanged2 = captureSkillsCredentialFiles(skillsProfileCredentialFiles(snapshot, profile));
|
|
1562
|
+
const target = resolveSkillsSignInOrigin(env, options, explicitUrl);
|
|
1563
|
+
unchanged2();
|
|
1564
|
+
return { ...target, unchanged: unchanged2 };
|
|
1565
|
+
}
|
|
1520
1566
|
function requireSkillsFleet(action = "This command", env = process.env, options = {}) {
|
|
1521
1567
|
const fleet = resolveSkillsFleet(env, options);
|
|
1522
1568
|
if (fleet.mode === "hosted")
|
|
@@ -1528,6 +1574,7 @@ var init_fleet_credentials = __esm(() => {
|
|
|
1528
1574
|
init_transport();
|
|
1529
1575
|
init_instance_credentials();
|
|
1530
1576
|
init_local_opt_in();
|
|
1577
|
+
init_credential_profile_command();
|
|
1531
1578
|
init_local_opt_in();
|
|
1532
1579
|
ENV_KEYS = clientTransportEnvKeys(SKILLS_APP);
|
|
1533
1580
|
SKILLS_API_URL_ENV_KEYS = ENV_KEYS.apiUrlKeys;
|
|
@@ -32251,6 +32298,40 @@ var init_codex_settings_witness_v1 = __esm(() => {
|
|
|
32251
32298
|
VERBOSITY = new Set(["low", "medium", "high"]);
|
|
32252
32299
|
});
|
|
32253
32300
|
|
|
32301
|
+
// src/lib/codex-plugin-capability-paths.ts
|
|
32302
|
+
function foldCodexPluginEntryName(name) {
|
|
32303
|
+
return name.toUpperCase().toLowerCase();
|
|
32304
|
+
}
|
|
32305
|
+
function codexPluginRootCapabilityEntry(name) {
|
|
32306
|
+
const folded = foldCodexPluginEntryName(name);
|
|
32307
|
+
return CODEX_PLUGIN_ROOT_CAPABILITY_ENTRIES.includes(folded) ? folded : null;
|
|
32308
|
+
}
|
|
32309
|
+
function isCodexSkillDocumentName(name) {
|
|
32310
|
+
return foldCodexPluginEntryName(name) === "skill.md";
|
|
32311
|
+
}
|
|
32312
|
+
var CODEX_PLUGIN_MANIFEST_LOCATIONS, CODEX_PLUGIN_MANIFEST_DIRECTORIES, CODEX_PLUGIN_ROOT_CAPABILITY_ENTRIES;
|
|
32313
|
+
var init_codex_plugin_capability_paths = __esm(() => {
|
|
32314
|
+
CODEX_PLUGIN_MANIFEST_LOCATIONS = Object.freeze([
|
|
32315
|
+
"plugin.json",
|
|
32316
|
+
".codex-plugin/plugin.json",
|
|
32317
|
+
".claude-plugin/plugin.json",
|
|
32318
|
+
".cursor-plugin/plugin.json"
|
|
32319
|
+
]);
|
|
32320
|
+
CODEX_PLUGIN_MANIFEST_DIRECTORIES = Object.freeze([".codex-plugin", ".claude-plugin", ".cursor-plugin"]);
|
|
32321
|
+
CODEX_PLUGIN_ROOT_CAPABILITY_ENTRIES = Object.freeze([
|
|
32322
|
+
"plugin.json",
|
|
32323
|
+
".codex-plugin",
|
|
32324
|
+
".claude-plugin",
|
|
32325
|
+
".cursor-plugin",
|
|
32326
|
+
"hooks",
|
|
32327
|
+
"hooks.json",
|
|
32328
|
+
".mcp.json",
|
|
32329
|
+
".app.json",
|
|
32330
|
+
"commands",
|
|
32331
|
+
"agents"
|
|
32332
|
+
]);
|
|
32333
|
+
});
|
|
32334
|
+
|
|
32254
32335
|
// src/lib/codex-hook-mcp-dependencies.ts
|
|
32255
32336
|
import { createHash as createHash12 } from "crypto";
|
|
32256
32337
|
import { basename as basename7, dirname as dirname12, isAbsolute as isAbsolute12, join as join16, resolve as resolve11, sep as sep5 } from "path";
|
|
@@ -32395,15 +32476,13 @@ function captureCodexHookMcpDependencies(configPath, reviewed, configText, chang
|
|
|
32395
32476
|
}
|
|
32396
32477
|
};
|
|
32397
32478
|
const root = join16(cacheRoot, identity2, selectCodexPluginVersion(versions2, selectionBudget));
|
|
32398
|
-
const
|
|
32479
|
+
const [agentPluginManifest, ...legacyManifests] = CODEX_PLUGIN_MANIFEST_LOCATIONS;
|
|
32480
|
+
const agent = read(join16(root, agentPluginManifest));
|
|
32399
32481
|
if (agent !== null) {
|
|
32400
32482
|
const schema = JSON.parse(agent).$schema;
|
|
32401
32483
|
need5(typeof schema !== "string" || !schema.startsWith("https://agent-plugins.org/schemas/"));
|
|
32402
32484
|
}
|
|
32403
|
-
const
|
|
32404
|
-
const claude = read(join16(root, ".claude-plugin/plugin.json"));
|
|
32405
|
-
const cursor = read(join16(root, ".cursor-plugin/plugin.json"));
|
|
32406
|
-
const text2 = codex ?? claude ?? cursor;
|
|
32485
|
+
const text2 = legacyManifests.map((location) => read(join16(root, location))).find((value) => value !== null) ?? null;
|
|
32407
32486
|
if (text2 === null)
|
|
32408
32487
|
continue;
|
|
32409
32488
|
const manifest = JSON.parse(text2);
|
|
@@ -32425,6 +32504,7 @@ var init_codex_hook_mcp_dependencies = __esm(() => {
|
|
|
32425
32504
|
init_claude_settings_witness();
|
|
32426
32505
|
init_agent_discovery_directories();
|
|
32427
32506
|
init_agent_discovery_bytes();
|
|
32507
|
+
init_codex_plugin_capability_paths();
|
|
32428
32508
|
events = new Set(["PreToolUse", "PermissionRequest", "PostToolUse", "PreCompact", "PostCompact", "SessionStart", "SessionEnd", "UserPromptSubmit", "SubagentStart", "SubagentStop", "Stop", "Interrupt"]);
|
|
32429
32509
|
});
|
|
32430
32510
|
|
|
@@ -33567,8 +33647,13 @@ var init_kernel_lock = __esm(() => {
|
|
|
33567
33647
|
});
|
|
33568
33648
|
|
|
33569
33649
|
// src/lib/codex-corpus-write.ts
|
|
33650
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
33651
|
+
var enclosing, leaseHolds;
|
|
33570
33652
|
var init_codex_corpus_write = __esm(() => {
|
|
33571
33653
|
init_kernel_lock();
|
|
33654
|
+
init_config();
|
|
33655
|
+
enclosing = new AsyncLocalStorage;
|
|
33656
|
+
leaseHolds = new WeakMap;
|
|
33572
33657
|
});
|
|
33573
33658
|
|
|
33574
33659
|
// src/lib/codex-hook-rpc.ts
|
|
@@ -34002,9 +34087,10 @@ var CODEX_VENDOR_MARKETPLACES, CODEX_REMOTE_VENDOR_MARKETPLACES, OTHER_PLUGIN_CO
|
|
|
34002
34087
|
var init_codex_vendor_refresh = __esm(() => {
|
|
34003
34088
|
init_claude_settings_witness();
|
|
34004
34089
|
init_codex_plugin_skill_controls();
|
|
34090
|
+
init_codex_plugin_capability_paths();
|
|
34005
34091
|
CODEX_VENDOR_MARKETPLACES = Object.freeze(["openai-bundled", "openai-curated", "openai-curated-remote"]);
|
|
34006
34092
|
CODEX_REMOTE_VENDOR_MARKETPLACES = Object.freeze(["openai-curated-remote"]);
|
|
34007
|
-
OTHER_PLUGIN_CONTROLS = Object.freeze(
|
|
34093
|
+
OTHER_PLUGIN_CONTROLS = Object.freeze(CODEX_PLUGIN_ROOT_CAPABILITY_ENTRIES.filter((entry) => entry !== ".codex-plugin" && entry !== ".app.json"));
|
|
34008
34094
|
VENDOR_MANIFEST_KEYS = Object.freeze(["name", "version", "description", "author", "homepage", "repository", "license", "keywords", "interface", "skills", "apps"]);
|
|
34009
34095
|
DEFAULT_SKILLS_PATHS = Object.freeze(["./skills", "./skills/"]);
|
|
34010
34096
|
});
|
|
@@ -35109,14 +35195,23 @@ function assertParents(cacheRoot, controls, appOnlyParents, hookParents, files,
|
|
|
35109
35195
|
continue;
|
|
35110
35196
|
const parent = join21(cacheRoot, parts[0], parts[1]);
|
|
35111
35197
|
const root = join21(parent, parts[2]);
|
|
35112
|
-
const base = parts[parts.length - 1];
|
|
35113
|
-
if (parts.
|
|
35198
|
+
const base = parts[parts.length - 1], folded = foldCodexPluginEntryName(base);
|
|
35199
|
+
if (parts.length === 3 && (codexPluginRootCapabilityEntry(base) !== null || isCodexSkillDocumentName(base)))
|
|
35200
|
+
refuse3();
|
|
35201
|
+
const rootEntry = parts.length >= 4 ? codexPluginRootCapabilityEntry(parts[3]) : null;
|
|
35202
|
+
if (rootEntry !== null && rootEntry !== parts[3])
|
|
35203
|
+
refuse3();
|
|
35204
|
+
if (rootEntry !== null && !SEMANTIC_BOUND_ROOT_ENTRIES.includes(rootEntry))
|
|
35205
|
+
refuse3();
|
|
35206
|
+
if (isCodexSkillDocumentName(base) && base !== "SKILL.md")
|
|
35207
|
+
refuse3();
|
|
35208
|
+
if (parts.some((part) => CODEX_PLUGIN_MANIFEST_DIRECTORIES.includes(foldCodexPluginEntryName(part))) && (parts.length < 4 || parts[3] !== ".codex-plugin" || (parts.length === 4 ? base !== ".codex-plugin" : parts.length !== 5 || base !== "plugin.json")))
|
|
35114
35209
|
refuse3();
|
|
35115
|
-
if ([".app.json", ".mcp.json"].includes(
|
|
35210
|
+
if ([".app.json", ".mcp.json"].includes(folded) && (parts.length !== 4 || dirname16(member) !== root))
|
|
35116
35211
|
refuse3();
|
|
35117
|
-
if ([".app.json", ".mcp.json"].includes(
|
|
35212
|
+
if ([".app.json", ".mcp.json"].includes(folded) && hookParents.some((reviewed) => reviewed.pluginParent === parent))
|
|
35118
35213
|
refuse3();
|
|
35119
|
-
if ((
|
|
35214
|
+
if ((rootEntry === "hooks" || folded === "hooks.json") && (![4, 5].includes(parts.length) || parts[3] !== "hooks" || (parts.length === 4 ? base !== "hooks" : base !== "hooks.json") || !hookParents.some((reviewed) => reviewed.pluginParent === join21(cacheRoot, parts[0], parts[1]))))
|
|
35120
35215
|
refuse3();
|
|
35121
35216
|
}
|
|
35122
35217
|
}
|
|
@@ -35338,13 +35433,15 @@ function assertCodexSemanticCacheWitnessUnchanged(previous, current) {
|
|
|
35338
35433
|
if (hash3(priorProjection) !== previous.sha256 || hash3(currentProjection) !== current.sha256 || canonical8(comparable(priorProjection)) !== canonical8(comparable(currentProjection)))
|
|
35339
35434
|
refuse3();
|
|
35340
35435
|
}
|
|
35341
|
-
var CODEX_SEMANTIC_CACHE_WITNESS_SCHEMA = "hasna.codex-semantic-cache-witness.v1", identifier4 = (value) => typeof value === "string" && /^[A-Za-z0-9_-]{1,64}$/.test(value), digest = (value) => typeof value === "string" && /^[a-f0-9]{64}$/.test(value), refuse3 = () => {
|
|
35436
|
+
var CODEX_SEMANTIC_CACHE_WITNESS_SCHEMA = "hasna.codex-semantic-cache-witness.v1", SEMANTIC_BOUND_ROOT_ENTRIES, identifier4 = (value) => typeof value === "string" && /^[A-Za-z0-9_-]{1,64}$/.test(value), digest = (value) => typeof value === "string" && /^[a-f0-9]{64}$/.test(value), refuse3 = () => {
|
|
35342
35437
|
throw new Error("CODEX_SEMANTIC_CACHE_WITNESS_UNSUPPORTED: review Codex plugin cache identity and controls");
|
|
35343
35438
|
}, MAX_DOCUMENT_BYTES, MAX_RECEIPT_BYTES, codexHookEvents;
|
|
35344
35439
|
var init_codex_semantic_cache_witness = __esm(() => {
|
|
35345
35440
|
init_claude_settings_witness();
|
|
35346
35441
|
init_codex_plugin_skill_controls();
|
|
35347
35442
|
init_codex_native_skill_catalog();
|
|
35443
|
+
init_codex_plugin_capability_paths();
|
|
35444
|
+
SEMANTIC_BOUND_ROOT_ENTRIES = Object.freeze([".codex-plugin", ".app.json", ".mcp.json", "hooks"]);
|
|
35348
35445
|
MAX_DOCUMENT_BYTES = 1024 * 1024;
|
|
35349
35446
|
MAX_RECEIPT_BYTES = 16 * 1024;
|
|
35350
35447
|
codexHookEvents = new Set([
|
package/bin/migrate.js
CHANGED
package/bin/server.js
CHANGED
|
@@ -24140,7 +24140,7 @@ restoreLaunchCwd();
|
|
|
24140
24140
|
// package.json
|
|
24141
24141
|
var package_default = {
|
|
24142
24142
|
name: "@hasna/skills",
|
|
24143
|
-
version: "0.10.
|
|
24143
|
+
version: "0.10.77",
|
|
24144
24144
|
description: "Skills library for AI coding agents",
|
|
24145
24145
|
type: "module",
|
|
24146
24146
|
bin: {
|
|
@@ -36934,6 +36934,9 @@ var AUTHORITY_OVERRIDE_HEADERS3 = new Set([
|
|
|
36934
36934
|
"x-original-host"
|
|
36935
36935
|
]);
|
|
36936
36936
|
|
|
36937
|
+
// src/lib/credential-profile-command.ts
|
|
36938
|
+
var urlKeys = clientTransportEnvKeys("skills").apiUrlKeys;
|
|
36939
|
+
|
|
36937
36940
|
// src/lib/fleet-credentials.ts
|
|
36938
36941
|
var SKILLS_APP = "skills";
|
|
36939
36942
|
var ENV_KEYS = clientTransportEnvKeys(SKILLS_APP);
|
|
@@ -38639,9 +38642,9 @@ function createReceiptService(store) {
|
|
|
38639
38642
|
}
|
|
38640
38643
|
|
|
38641
38644
|
// node_modules/@aws-sdk/client-ecs/dist-es/ECSClient.js
|
|
38642
|
-
var
|
|
38645
|
+
var import_client37 = __toESM(require_client2(), 1);
|
|
38643
38646
|
var import_core2 = __toESM(require_dist_cjs2(), 1);
|
|
38644
|
-
var
|
|
38647
|
+
var import_client38 = __toESM(require_client(), 1);
|
|
38645
38648
|
var import_config33 = __toESM(require_config(), 1);
|
|
38646
38649
|
var import_endpoints8 = __toESM(require_endpoints(), 1);
|
|
38647
38650
|
var import_protocols10 = __toESM(require_protocols(), 1);
|
|
@@ -38650,11 +38653,11 @@ var import_schema4 = __toESM(require_schema(), 1);
|
|
|
38650
38653
|
|
|
38651
38654
|
// node_modules/@aws-sdk/client-ecs/dist-es/auth/httpAuthSchemeProvider.js
|
|
38652
38655
|
var import_httpAuthSchemes4 = __toESM(require_httpAuthSchemes(), 1);
|
|
38653
|
-
var
|
|
38656
|
+
var import_client29 = __toESM(require_client(), 1);
|
|
38654
38657
|
var defaultECSHttpAuthSchemeParametersProvider = async (config, context, input) => {
|
|
38655
38658
|
return {
|
|
38656
|
-
operation:
|
|
38657
|
-
region: await
|
|
38659
|
+
operation: import_client29.getSmithyContext(context).operation,
|
|
38660
|
+
region: await import_client29.normalizeProvider(config.region)() || (() => {
|
|
38658
38661
|
throw new Error("expected `region` to be configured for `aws.auth#sigv4`");
|
|
38659
38662
|
})()
|
|
38660
38663
|
};
|
|
@@ -38686,7 +38689,7 @@ var defaultECSHttpAuthSchemeProvider = (authParameters) => {
|
|
|
38686
38689
|
var resolveHttpAuthSchemeConfig3 = (config) => {
|
|
38687
38690
|
const config_0 = import_httpAuthSchemes4.resolveAwsSdkSigV4Config(config);
|
|
38688
38691
|
return Object.assign(config_0, {
|
|
38689
|
-
authSchemePreference:
|
|
38692
|
+
authSchemePreference: import_client29.normalizeProvider(config.authSchemePreference ?? [])
|
|
38690
38693
|
});
|
|
38691
38694
|
};
|
|
38692
38695
|
|
|
@@ -38778,9 +38781,9 @@ var package_default3 = {
|
|
|
38778
38781
|
};
|
|
38779
38782
|
|
|
38780
38783
|
// node_modules/@aws-sdk/client-ecs/dist-es/runtimeConfig.js
|
|
38781
|
-
var
|
|
38784
|
+
var import_client33 = __toESM(require_client2(), 1);
|
|
38782
38785
|
var import_httpAuthSchemes6 = __toESM(require_httpAuthSchemes(), 1);
|
|
38783
|
-
var
|
|
38786
|
+
var import_client34 = __toESM(require_client(), 1);
|
|
38784
38787
|
var import_config32 = __toESM(require_config(), 1);
|
|
38785
38788
|
var import_retry5 = __toESM(require_retry(), 1);
|
|
38786
38789
|
var import_serde6 = __toESM(require_serde(), 1);
|
|
@@ -38790,12 +38793,12 @@ var import_node_http_handler3 = __toESM(require_dist_cjs6(), 1);
|
|
|
38790
38793
|
var import_httpAuthSchemes5 = __toESM(require_httpAuthSchemes(), 1);
|
|
38791
38794
|
var import_protocols7 = __toESM(require_protocols2(), 1);
|
|
38792
38795
|
var import_checksum3 = __toESM(require_checksum(), 1);
|
|
38793
|
-
var
|
|
38796
|
+
var import_client32 = __toESM(require_client(), 1);
|
|
38794
38797
|
var import_protocols8 = __toESM(require_protocols(), 1);
|
|
38795
38798
|
var import_serde5 = __toESM(require_serde(), 1);
|
|
38796
38799
|
|
|
38797
38800
|
// node_modules/@aws-sdk/client-ecs/dist-es/endpoint/endpointResolver.js
|
|
38798
|
-
var
|
|
38801
|
+
var import_client30 = __toESM(require_client2(), 1);
|
|
38799
38802
|
var import_endpoints7 = __toESM(require_endpoints(), 1);
|
|
38800
38803
|
|
|
38801
38804
|
// node_modules/@aws-sdk/client-ecs/dist-es/endpoint/bdd.js
|
|
@@ -38892,14 +38895,14 @@ var defaultEndpointResolver3 = (endpointParams, context = {}) => {
|
|
|
38892
38895
|
logger: context.logger
|
|
38893
38896
|
}));
|
|
38894
38897
|
};
|
|
38895
|
-
import_endpoints7.customEndpointFunctions.aws =
|
|
38898
|
+
import_endpoints7.customEndpointFunctions.aws = import_client30.awsEndpointFunctions;
|
|
38896
38899
|
|
|
38897
38900
|
// node_modules/@aws-sdk/client-ecs/dist-es/schemas/schemas_0.js
|
|
38898
38901
|
var import_schema3 = __toESM(require_schema(), 1);
|
|
38899
38902
|
|
|
38900
38903
|
// node_modules/@aws-sdk/client-ecs/dist-es/models/ECSServiceException.js
|
|
38901
|
-
var
|
|
38902
|
-
class ECSServiceException extends
|
|
38904
|
+
var import_client31 = __toESM(require_client(), 1);
|
|
38905
|
+
class ECSServiceException extends import_client31.ServiceException {
|
|
38903
38906
|
constructor(options) {
|
|
38904
38907
|
super(options);
|
|
38905
38908
|
Object.setPrototypeOf(this, ECSServiceException.prototype);
|
|
@@ -41703,7 +41706,7 @@ var getRuntimeConfig4 = (config) => {
|
|
|
41703
41706
|
signer: new import_httpAuthSchemes5.AwsSdkSigV4Signer
|
|
41704
41707
|
}
|
|
41705
41708
|
],
|
|
41706
|
-
logger: config?.logger ?? new
|
|
41709
|
+
logger: config?.logger ?? new import_client32.NoOpLogger,
|
|
41707
41710
|
protocol: config?.protocol ?? import_protocols7.AwsJson1_1Protocol,
|
|
41708
41711
|
protocolSettings: config?.protocolSettings ?? {
|
|
41709
41712
|
defaultNamespace: "com.amazonaws.ecs",
|
|
@@ -41722,11 +41725,11 @@ var getRuntimeConfig4 = (config) => {
|
|
|
41722
41725
|
|
|
41723
41726
|
// node_modules/@aws-sdk/client-ecs/dist-es/runtimeConfig.js
|
|
41724
41727
|
var getRuntimeConfig5 = (config) => {
|
|
41725
|
-
|
|
41728
|
+
import_client34.emitWarningIfUnsupportedVersion(process.version);
|
|
41726
41729
|
const defaultsMode = import_config32.resolveDefaultsModeConfig(config);
|
|
41727
|
-
const defaultConfigProvider = () => defaultsMode().then(
|
|
41730
|
+
const defaultConfigProvider = () => defaultsMode().then(import_client34.loadConfigsForDefaultMode);
|
|
41728
41731
|
const clientSharedValues = getRuntimeConfig4(config);
|
|
41729
|
-
|
|
41732
|
+
import_client33.emitWarningIfUnsupportedVersion(process.version);
|
|
41730
41733
|
const loaderConfig = {
|
|
41731
41734
|
profile: config?.profile,
|
|
41732
41735
|
logger: clientSharedValues.logger
|
|
@@ -41739,7 +41742,7 @@ var getRuntimeConfig5 = (config) => {
|
|
|
41739
41742
|
authSchemePreference: config?.authSchemePreference ?? import_config32.loadConfig(import_httpAuthSchemes6.NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),
|
|
41740
41743
|
bodyLengthChecker: config?.bodyLengthChecker ?? import_serde6.calculateBodyLength,
|
|
41741
41744
|
credentialDefaultProvider: config?.credentialDefaultProvider ?? defaultProvider,
|
|
41742
|
-
defaultUserAgentProvider: config?.defaultUserAgentProvider ??
|
|
41745
|
+
defaultUserAgentProvider: config?.defaultUserAgentProvider ?? import_client33.createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: package_default3.version }),
|
|
41743
41746
|
maxAttempts: config?.maxAttempts ?? import_config32.loadConfig(import_retry5.NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),
|
|
41744
41747
|
region: config?.region ?? import_config32.loadConfig(import_config32.NODE_REGION_CONFIG_OPTIONS, { ...import_config32.NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),
|
|
41745
41748
|
requestHandler: import_node_http_handler3.NodeHttpHandler.create(config?.requestHandler ?? defaultConfigProvider),
|
|
@@ -41750,13 +41753,13 @@ var getRuntimeConfig5 = (config) => {
|
|
|
41750
41753
|
streamCollector: config?.streamCollector ?? import_node_http_handler3.streamCollector,
|
|
41751
41754
|
useDualstackEndpoint: config?.useDualstackEndpoint ?? import_config32.loadConfig(import_config32.NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),
|
|
41752
41755
|
useFipsEndpoint: config?.useFipsEndpoint ?? import_config32.loadConfig(import_config32.NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),
|
|
41753
|
-
userAgentAppId: config?.userAgentAppId ?? import_config32.loadConfig(
|
|
41756
|
+
userAgentAppId: config?.userAgentAppId ?? import_config32.loadConfig(import_client33.NODE_APP_ID_CONFIG_OPTIONS, loaderConfig)
|
|
41754
41757
|
};
|
|
41755
41758
|
};
|
|
41756
41759
|
|
|
41757
41760
|
// node_modules/@aws-sdk/client-ecs/dist-es/runtimeExtensions.js
|
|
41758
|
-
var
|
|
41759
|
-
var
|
|
41761
|
+
var import_client35 = __toESM(require_client2(), 1);
|
|
41762
|
+
var import_client36 = __toESM(require_client(), 1);
|
|
41760
41763
|
var import_protocols9 = __toESM(require_protocols(), 1);
|
|
41761
41764
|
|
|
41762
41765
|
// node_modules/@aws-sdk/client-ecs/dist-es/auth/httpAuthExtensionConfiguration.js
|
|
@@ -41800,34 +41803,34 @@ var resolveHttpAuthRuntimeConfig3 = (config) => {
|
|
|
41800
41803
|
|
|
41801
41804
|
// node_modules/@aws-sdk/client-ecs/dist-es/runtimeExtensions.js
|
|
41802
41805
|
var resolveRuntimeExtensions3 = (runtimeConfig, extensions) => {
|
|
41803
|
-
const extensionConfiguration = Object.assign(
|
|
41806
|
+
const extensionConfiguration = Object.assign(import_client35.getAwsRegionExtensionConfiguration(runtimeConfig), import_client36.getDefaultExtensionConfiguration(runtimeConfig), import_protocols9.getHttpHandlerExtensionConfiguration(runtimeConfig), getHttpAuthExtensionConfiguration3(runtimeConfig));
|
|
41804
41807
|
extensions.forEach((extension) => extension.configure(extensionConfiguration));
|
|
41805
|
-
return Object.assign(runtimeConfig,
|
|
41808
|
+
return Object.assign(runtimeConfig, import_client35.resolveAwsRegionExtensionConfiguration(extensionConfiguration), import_client36.resolveDefaultRuntimeConfig(extensionConfiguration), import_protocols9.resolveHttpHandlerRuntimeConfig(extensionConfiguration), resolveHttpAuthRuntimeConfig3(extensionConfiguration));
|
|
41806
41809
|
};
|
|
41807
41810
|
|
|
41808
41811
|
// node_modules/@aws-sdk/client-ecs/dist-es/ECSClient.js
|
|
41809
|
-
class ECSClient extends
|
|
41812
|
+
class ECSClient extends import_client38.Client {
|
|
41810
41813
|
config;
|
|
41811
41814
|
constructor(...[configuration]) {
|
|
41812
41815
|
const _config_0 = getRuntimeConfig5(configuration || {});
|
|
41813
41816
|
super(_config_0);
|
|
41814
41817
|
this.initConfig = _config_0;
|
|
41815
41818
|
const _config_1 = resolveClientEndpointParameters3(_config_0);
|
|
41816
|
-
const _config_2 =
|
|
41819
|
+
const _config_2 = import_client37.resolveUserAgentConfig(_config_1);
|
|
41817
41820
|
const _config_3 = import_retry6.resolveRetryConfig(_config_2);
|
|
41818
41821
|
const _config_4 = import_config33.resolveRegionConfig(_config_3);
|
|
41819
|
-
const _config_5 =
|
|
41822
|
+
const _config_5 = import_client37.resolveHostHeaderConfig(_config_4);
|
|
41820
41823
|
const _config_6 = import_endpoints8.resolveEndpointConfig(_config_5);
|
|
41821
41824
|
const _config_7 = resolveHttpAuthSchemeConfig3(_config_6);
|
|
41822
41825
|
const _config_8 = resolveRuntimeExtensions3(_config_7, configuration?.extensions || []);
|
|
41823
41826
|
this.config = _config_8;
|
|
41824
41827
|
this.middlewareStack.use(import_schema4.getSchemaSerdePlugin(this.config));
|
|
41825
|
-
this.middlewareStack.use(
|
|
41828
|
+
this.middlewareStack.use(import_client37.getUserAgentPlugin(this.config));
|
|
41826
41829
|
this.middlewareStack.use(import_retry6.getRetryPlugin(this.config));
|
|
41827
41830
|
this.middlewareStack.use(import_protocols10.getContentLengthPlugin(this.config));
|
|
41828
|
-
this.middlewareStack.use(
|
|
41829
|
-
this.middlewareStack.use(
|
|
41830
|
-
this.middlewareStack.use(
|
|
41831
|
+
this.middlewareStack.use(import_client37.getHostHeaderPlugin(this.config));
|
|
41832
|
+
this.middlewareStack.use(import_client37.getLoggerPlugin(this.config));
|
|
41833
|
+
this.middlewareStack.use(import_client37.getRecursionDetectionPlugin(this.config));
|
|
41831
41834
|
this.middlewareStack.use(import_core2.getHttpAuthSchemeEndpointRuleSetPlugin(this.config, {
|
|
41832
41835
|
httpAuthSchemeParametersProvider: defaultECSHttpAuthSchemeParametersProvider,
|
|
41833
41836
|
identityProviderConfigProvider: async (config) => new import_core2.DefaultIdentityProviderConfig({
|
|
@@ -41842,9 +41845,9 @@ class ECSClient extends import_client37.Client {
|
|
|
41842
41845
|
}
|
|
41843
41846
|
|
|
41844
41847
|
// node_modules/@aws-sdk/client-ecs/dist-es/commandBuilder.js
|
|
41845
|
-
var
|
|
41848
|
+
var import_client39 = __toESM(require_client(), 1);
|
|
41846
41849
|
var import_endpoints9 = __toESM(require_endpoints(), 1);
|
|
41847
|
-
var command3 =
|
|
41850
|
+
var command3 = import_client39.makeBuilder(commonParams3, "AmazonEC2ContainerServiceV20141113", "ECSClient", import_endpoints9.getEndpointPlugin);
|
|
41848
41851
|
var _ep03 = {};
|
|
41849
41852
|
var _mw03 = (Command, cs, config, o2) => [];
|
|
41850
41853
|
|
package/bin/worker.js
CHANGED
|
@@ -24143,7 +24143,7 @@ import { randomUUID as randomUUID6 } from "crypto";
|
|
|
24143
24143
|
// package.json
|
|
24144
24144
|
var package_default = {
|
|
24145
24145
|
name: "@hasna/skills",
|
|
24146
|
-
version: "0.10.
|
|
24146
|
+
version: "0.10.77",
|
|
24147
24147
|
description: "Skills library for AI coding agents",
|
|
24148
24148
|
type: "module",
|
|
24149
24149
|
bin: {
|
|
@@ -36158,6 +36158,9 @@ var AUTHORITY_OVERRIDE_HEADERS3 = new Set([
|
|
|
36158
36158
|
"x-original-host"
|
|
36159
36159
|
]);
|
|
36160
36160
|
|
|
36161
|
+
// src/lib/credential-profile-command.ts
|
|
36162
|
+
var urlKeys = clientTransportEnvKeys("skills").apiUrlKeys;
|
|
36163
|
+
|
|
36161
36164
|
// src/lib/fleet-credentials.ts
|
|
36162
36165
|
var SKILLS_APP = "skills";
|
|
36163
36166
|
var ENV_KEYS = clientTransportEnvKeys(SKILLS_APP);
|