@moda-ai/cli 1.55.21 → 1.55.23

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.
Files changed (33) hide show
  1. package/dist/{agent-mj622k8s.js → agent-f8a1kejk.js} +8 -9
  2. package/dist/{cli-569hj0bj.js → cli-2cggp8ww.js} +1 -1
  3. package/dist/{cli-a5c9te95.js → cli-4f6jkrnm.js} +5 -5
  4. package/dist/cli-4yarp5s1.js +61 -0
  5. package/dist/{cli-4j8nffsm.js → cli-54zhv6cx.js} +57 -28
  6. package/dist/{cli-sf0g0fjg.js → cli-8dtnwp9r.js} +152 -57
  7. package/dist/{cli-9x9adrtj.js → cli-9g8vz4sv.js} +1 -1
  8. package/dist/{cli-cehskjde.js → cli-cv3jt1ms.js} +5 -7
  9. package/dist/{cli-033n2mpb.js → cli-d2zews6c.js} +6 -9
  10. package/dist/{cli-38p87ykc.js → cli-frhm2wz7.js} +1 -1
  11. package/dist/{cli-wf7gfa1e.js → cli-s6tw1fje.js} +8 -10
  12. package/dist/{cli-5ke3xe6y.js → cli-t3a6eknn.js} +26 -1
  13. package/dist/{cli-rqk6f6n6.js → cli-wkmdw40s.js} +24 -5
  14. package/dist/{cli-pc5cw7mx.js → cli-z3g07t65.js} +5 -5
  15. package/dist/cli.js +50 -35
  16. package/dist/{doctor-mx6jf435.js → doctor-snb87jvy.js} +8 -9
  17. package/dist/{fix-9fmy6p2x.js → fix-fr48gr0w.js} +6 -7
  18. package/dist/{harness-github-actions-c826bfxs.js → harness-github-actions-cfkx9ty9.js} +5 -6
  19. package/dist/{harness-xvg6ws6x.js → harness-m63b6s0k.js} +5 -6
  20. package/dist/{index-ewqbpnwz.js → index-nsaph4as.js} +58 -22
  21. package/dist/{production-intelligence-dbe9dmc5.js → production-intelligence-fwjh572m.js} +8 -7
  22. package/dist/{profile-commands-kmmd9y86.js → profile-commands-548ts402.js} +7 -48
  23. package/dist/prompt-source-mcp.js +5 -6
  24. package/dist/{prompts-1tkhrxkq.js → prompts-p66y7wep.js} +6 -7
  25. package/dist/{provision-wzttap58.js → provision-r9fhrvpw.js} +5 -4
  26. package/dist/{registry-atqyb5fa.js → registry-n7dsdxmg.js} +3 -4
  27. package/dist/{skills-bundled-r9a2vs07.js → skills-bundled-dq20spzk.js} +2 -2
  28. package/dist/skills-c17gg69y.js +18 -0
  29. package/dist/{sync-25vn78je.js → sync-bne90xvj.js} +8 -9
  30. package/package.json +1 -1
  31. package/skills/integration/index.json +2 -2
  32. package/dist/cli-7ea02wca.js +0 -30
  33. package/dist/skills-br82cpt7.js +0 -19
@@ -1,20 +1,21 @@
1
1
  import {
2
2
  selectTenantAndCreateKey
3
- } from "./cli-033n2mpb.js";
3
+ } from "./cli-d2zews6c.js";
4
+ import"./cli-4yarp5s1.js";
4
5
  import {
5
6
  buildDoctorReport
6
- } from "./cli-pc5cw7mx.js";
7
+ } from "./cli-z3g07t65.js";
7
8
  import {
8
9
  ConnectCodeError,
9
10
  connectWithCode,
10
11
  loadAuthSession,
11
12
  loadToken,
12
13
  login
13
- } from "./cli-9x9adrtj.js";
14
+ } from "./cli-9g8vz4sv.js";
14
15
  import {
15
16
  initPrompts,
16
17
  runPromptSync
17
- } from "./cli-wf7gfa1e.js";
18
+ } from "./cli-s6tw1fje.js";
18
19
  import"./cli-mm48br00.js";
19
20
  import {
20
21
  canonicalText,
@@ -34,7 +35,7 @@ import {
34
35
  runCodingAgent,
35
36
  runHarnessCommand,
36
37
  startRemoteAnalyze
37
- } from "./cli-a5c9te95.js";
38
+ } from "./cli-4f6jkrnm.js";
38
39
  import {
39
40
  stripAnsi
40
41
  } from "./cli-97fnztpy.js";
@@ -42,16 +43,16 @@ import {
42
43
  bundledSkillsDir,
43
44
  installIntegrationSkill,
44
45
  readBundledIndex
45
- } from "./cli-38p87ykc.js";
46
+ } from "./cli-frhm2wz7.js";
46
47
  import {
48
+ agentsMdProblem,
47
49
  runSkillSync
48
- } from "./cli-4j8nffsm.js";
50
+ } from "./cli-54zhv6cx.js";
49
51
  import {
50
52
  createCommandContext
51
- } from "./cli-569hj0bj.js";
52
- import"./cli-cehskjde.js";
53
- import"./cli-rqk6f6n6.js";
54
- import"./cli-7ea02wca.js";
53
+ } from "./cli-2cggp8ww.js";
54
+ import"./cli-cv3jt1ms.js";
55
+ import"./cli-wkmdw40s.js";
55
56
  import {
56
57
  CliAuthError,
57
58
  CliInputError,
@@ -59,11 +60,12 @@ import {
59
60
  recordApiRequest,
60
61
  resolveIngestUrl,
61
62
  resolveModaBaseUrl
62
- } from "./cli-5ke3xe6y.js";
63
+ } from "./cli-t3a6eknn.js";
63
64
  import {
64
65
  detectAgents,
65
- installRules
66
- } from "./cli-sf0g0fjg.js";
66
+ installRules,
67
+ summarizeInstall
68
+ } from "./cli-8dtnwp9r.js";
67
69
  import"./cli-0v6na3yp.js";
68
70
 
69
71
  // src/init/index.ts
@@ -2022,13 +2024,33 @@ Harness analysis keeps running on Moda. Resume anytime with \`${HARNESS_PULL_REC
2022
2024
  }
2023
2025
  emit("apply", "Applying approved setup changes.");
2024
2026
  const laneBoard = startBoard();
2027
+ const setupWarnings = [];
2028
+ const addSetupWarning = (message) => {
2029
+ setupWarnings.push(message);
2030
+ emit("apply", message, "warning");
2031
+ };
2025
2032
  const agents = detectAgents();
2026
2033
  laneBoard?.startLane("agent-skills", "Agent skills");
2027
- if (agents.length > 0) {
2028
- await installRules(agents, { yes: true, silent: true });
2029
- laneBoard?.complete("agent-skills", `moda-cli skill installed for ${agents.join(", ")}`);
2034
+ const skillInstallResult = agents.length > 0 ? await installRules(agents, { yes: true, silent: true }) : undefined;
2035
+ const skillInstall = {
2036
+ status: skillInstallResult?.status ?? "skipped",
2037
+ agents: skillInstallResult?.agents ?? [],
2038
+ summary: skillInstallResult ? summarizeInstall(skillInstallResult) : "",
2039
+ warnings: skillInstallResult?.warnings ?? []
2040
+ };
2041
+ skillInstall.warnings.forEach(addSetupWarning);
2042
+ if (skillInstall.agents.length === 0) {
2043
+ laneBoard?.complete("agent-skills", agents.length > 0 ? "no supported coding agents detected" : "no coding agents detected");
2044
+ } else if (skillInstall.status === "ok") {
2045
+ laneBoard?.complete("agent-skills", `moda-cli skill installed for ${skillInstall.agents.join(", ")}`);
2030
2046
  } else {
2031
- laneBoard?.complete("agent-skills", "no coding agents detected");
2047
+ const counts = skillInstallResult?.counts;
2048
+ const nothingInstalled = counts !== undefined && counts.written + counts.updated + counts.current === 0;
2049
+ const note = `moda-cli skill: ${skillInstall.summary}; ${skillInstall.warnings.length} warning(s), details below`;
2050
+ if (skillInstall.status === "failed" && nothingInstalled)
2051
+ laneBoard?.fail("agent-skills", note);
2052
+ else
2053
+ laneBoard?.warn("agent-skills", note);
2032
2054
  }
2033
2055
  await initPrompts({ silent: true });
2034
2056
  let promptSyncOutcome;
@@ -2046,8 +2068,19 @@ Harness analysis keeps running on Moda. Resume anytime with \`${HARNESS_PULL_REC
2046
2068
  laneBoard?.startLane("skills", "Skills");
2047
2069
  try {
2048
2070
  const skillSync = await runSkillSync({}, { profile });
2049
- skillSyncOutcome = { status: "ok", synced: skillSync.synced.map((skill) => skill.key) };
2050
- laneBoard?.complete("skills", skillSync.synced.length > 0 ? `${skillSync.synced.length} skill(s) synced` : "no local skills to sync yet");
2071
+ const agentsMdWarning = agentsMdProblem(skillSync.agentsMd);
2072
+ skillSyncOutcome = {
2073
+ status: "ok",
2074
+ synced: skillSync.synced.map((skill) => skill.key),
2075
+ ...agentsMdWarning ? { warnings: [agentsMdWarning] } : {}
2076
+ };
2077
+ const syncedNote = skillSync.synced.length > 0 ? `${skillSync.synced.length} skill(s) synced` : "no local skills to sync yet";
2078
+ if (agentsMdWarning) {
2079
+ addSetupWarning(agentsMdWarning);
2080
+ laneBoard?.warn("skills", `${syncedNote}; AGENTS.md block not updated, details below`);
2081
+ } else {
2082
+ laneBoard?.complete("skills", syncedNote);
2083
+ }
2051
2084
  } catch (err) {
2052
2085
  const message = err instanceof Error ? err.message : String(err);
2053
2086
  skillSyncOutcome = { status: "failed", synced: [], error: message };
@@ -2160,11 +2193,13 @@ Harness analysis keeps running on Moda. Resume anytime with \`${HARNESS_PULL_REC
2160
2193
  }
2161
2194
  }
2162
2195
  board?.stop();
2196
+ for (const message of setupWarnings)
2197
+ warn(renderInitNote(message, "warning"));
2163
2198
  if (!harnessDeferred)
2164
2199
  markApplied(setupPlan, "harness");
2165
2200
  phases.push(harnessPhase);
2166
- emit("apply", "Approved changes applied.", "completed");
2167
- phases.push({ id: "apply", title: "Set up", status: "completed" });
2201
+ emit("apply", "Approved changes applied.", setupWarnings.length > 0 ? "warning" : "completed");
2202
+ phases.push(setupWarnings.length > 0 ? { id: "apply", title: "Set up", status: "warning", details: `${setupWarnings.length} setup warning(s); see warnings.` } : { id: "apply", title: "Set up", status: "completed" });
2168
2203
  const offlineValidation = isTruthyFlag(flagValue(flags, "offline"));
2169
2204
  log(renderInitStep(5, 5, "Verify", offlineValidation ? "Running local doctor checks so the setup leaves a clear state." : "Running Moda doctor online as a tenant health check (not proof of SDK integration)."));
2170
2205
  emit("validate", `Running Moda doctor diagnostics (${offlineValidation ? "offline" : "online"}).`);
@@ -2205,6 +2240,7 @@ Harness analysis keeps running on Moda. Resume anytime with \`${HARNESS_PULL_REC
2205
2240
  setupPlan,
2206
2241
  promptSync: promptSyncOutcome,
2207
2242
  skillSync: skillSyncOutcome,
2243
+ skillInstall,
2208
2244
  ...sdkIntegration ? { sdk_integration: sdkIntegration } : {}
2209
2245
  };
2210
2246
  }
@@ -10,15 +10,13 @@ import {
10
10
  import {
11
11
  callControlAPI,
12
12
  callDataAPI
13
- } from "./cli-rqk6f6n6.js";
14
- import {
15
- apiKeyHeaders
16
- } from "./cli-7ea02wca.js";
13
+ } from "./cli-wkmdw40s.js";
17
14
  import {
18
15
  CliAuthError,
19
16
  CliInputError,
20
17
  EXIT_DEGRADED,
21
18
  EXIT_OK,
19
+ apiKeyHeaders,
22
20
  asNumber,
23
21
  asRecord,
24
22
  asString,
@@ -30,7 +28,7 @@ import {
30
28
  resolveModaBaseUrl,
31
29
  safeWriteStderr,
32
30
  shellWord
33
- } from "./cli-5ke3xe6y.js";
31
+ } from "./cli-t3a6eknn.js";
34
32
  import"./cli-0v6na3yp.js";
35
33
 
36
34
  // src/production-intelligence.ts
@@ -509,7 +507,7 @@ async function investigateProduction(options) {
509
507
  const hints = loadHarnessHints(options.cwd);
510
508
  const overviewEndpoint = `/overview?days_back=${options.daysBack}`;
511
509
  const toolEndpoint = options.toolName ? `/tool-failures/${encodeURIComponent(options.toolName)}?days_back=${options.daysBack}&limit=5` : `/tool-failures?days_back=${options.daysBack}`;
512
- const frustrationsEndpoint = `/emotions?family=frustration&days_back=${options.daysBack}&limit=5${options.conversationId ? `&conversation_id=${encodeURIComponent(options.conversationId)}` : ""}`;
510
+ const frustrationsEndpoint = `${investigateFrustrationsEndpoint(options.daysBack)}${options.conversationId ? `&conversation_id=${encodeURIComponent(options.conversationId)}` : ""}`;
513
511
  const problemsEndpoint = `/problems?days_back=${options.daysBack}&limit=${INVESTIGATION_PROBLEM_LIMIT}`;
514
512
  const skipped = { data: null, status: "ok" };
515
513
  const [overview, tools, frustrations, problems] = await Promise.all([
@@ -854,6 +852,9 @@ function toolFailureFindings(data, daysBack, hints, evidenceRefs, scopedTool) {
854
852
  }];
855
853
  });
856
854
  }
855
+ function investigateFrustrationsEndpoint(daysBack) {
856
+ return `/emotions?family=frustration&days_back=${daysBack}&limit=1&include_context=0`;
857
+ }
857
858
  function frustrationFindings(data, daysBack, evidenceRefs) {
858
859
  data = frustrationsFromEmotions(asRecord(data) ?? {});
859
860
  const summary = asRecord(valueAt(data, ["summary"]));
@@ -871,7 +872,7 @@ function frustrationFindings(data, daysBack, evidenceRefs) {
871
872
  id: evidenceId,
872
873
  kind: "frustration",
873
874
  label: quote ? `Frustration anchor: "${quote}"` : `${count} frustrated trace(s)`,
874
- endpoint: `/emotions?family=frustration&days_back=${daysBack}&limit=5`,
875
+ endpoint: investigateFrustrationsEndpoint(daysBack),
875
876
  ...conversationId ? { conversationId } : {},
876
877
  value: first ?? summary ?? data
877
878
  });
@@ -1,3 +1,8 @@
1
+ import {
2
+ probeApiKey,
3
+ redactApiKey,
4
+ resolveApiKeyCredential
5
+ } from "./cli-4yarp5s1.js";
1
6
  import {
2
7
  authFetch,
3
8
  clearAuthSession,
@@ -5,10 +10,7 @@ import {
5
10
  loadAuthSession,
6
11
  login,
7
12
  revokeCliSessionToken
8
- } from "./cli-9x9adrtj.js";
9
- import {
10
- apiKeyHeaders
11
- } from "./cli-7ea02wca.js";
13
+ } from "./cli-9g8vz4sv.js";
12
14
  import {
13
15
  CliInputError,
14
16
  DEFAULT_INGEST_URL,
@@ -23,7 +25,6 @@ import {
23
25
  getActiveProfile,
24
26
  getModaPaths,
25
27
  loadProfileConfig,
26
- recordApiRequest,
27
28
  resolveApiKey,
28
29
  resolveApiKeyFromActiveProfile,
29
30
  resolveApiTenantId,
@@ -34,51 +35,9 @@ import {
34
35
  secretFilePathFromRef,
35
36
  setActiveProfile,
36
37
  upsertProfile
37
- } from "./cli-5ke3xe6y.js";
38
+ } from "./cli-t3a6eknn.js";
38
39
  import"./cli-0v6na3yp.js";
39
40
 
40
- // src/api-key-auth.ts
41
- var PROBE_TIMEOUT_MS = 1e4;
42
- function resolveApiKeyCredential(options = {}) {
43
- const key = resolveApiKey(options);
44
- if (!key)
45
- return;
46
- const env = options.env ?? process.env;
47
- const source = env.MODA_API_KEY === key ? "env" : resolveApiKeyFromActiveProfile(options) === key ? "profile" : "config";
48
- return { key, source, tenantId: embeddedTenantIdFromApiKey(key) };
49
- }
50
- function redactApiKey(key) {
51
- if (key.length <= 12)
52
- return "<redacted>";
53
- return `${key.slice(0, 8)}...${key.slice(-4)}`;
54
- }
55
- async function probeApiKey(key, options = {}) {
56
- let response;
57
- try {
58
- recordApiRequest();
59
- response = await fetch(`${resolveModaBaseUrl(options)}/api/v1/data/overview`, {
60
- method: "GET",
61
- headers: apiKeyHeaders(key, options),
62
- signal: AbortSignal.timeout(PROBE_TIMEOUT_MS)
63
- });
64
- } catch (error) {
65
- const reason = error instanceof Error ? error.message : String(error);
66
- return { outcome: "unreachable", reason };
67
- }
68
- if (response.status === 401 || response.status === 403) {
69
- return { outcome: "rejected", status: response.status };
70
- }
71
- if (response.status !== 200) {
72
- return { outcome: "unreachable", reason: `HTTP ${response.status}` };
73
- }
74
- try {
75
- await response.json();
76
- } catch {
77
- return { outcome: "unreachable", reason: "non-JSON response from the Data API" };
78
- }
79
- return { outcome: "live" };
80
- }
81
-
82
41
  // src/profile-commands.ts
83
42
  var ONLINE_PROBE_TIMEOUT_MS = 5000;
84
43
  function subcommand(context) {
@@ -5,13 +5,12 @@ import {
5
5
  inspectCodeSelectors,
6
6
  inspectPythonSelectors,
7
7
  safePromptEvidencePath
8
- } from "./cli-a5c9te95.js";
8
+ } from "./cli-4f6jkrnm.js";
9
9
  import"./cli-97fnztpy.js";
10
- import"./cli-569hj0bj.js";
11
- import"./cli-cehskjde.js";
12
- import"./cli-rqk6f6n6.js";
13
- import"./cli-7ea02wca.js";
14
- import"./cli-5ke3xe6y.js";
10
+ import"./cli-2cggp8ww.js";
11
+ import"./cli-cv3jt1ms.js";
12
+ import"./cli-wkmdw40s.js";
13
+ import"./cli-t3a6eknn.js";
15
14
  import {
16
15
  __commonJS,
17
16
  __toESM
@@ -11,17 +11,16 @@ import {
11
11
  runPromptSync,
12
12
  runPromptsCommand,
13
13
  writePromptSyncProgress
14
- } from "./cli-wf7gfa1e.js";
14
+ } from "./cli-s6tw1fje.js";
15
15
  import {
16
16
  promptSourceHashPayload
17
17
  } from "./cli-mm48br00.js";
18
- import"./cli-a5c9te95.js";
18
+ import"./cli-4f6jkrnm.js";
19
19
  import"./cli-97fnztpy.js";
20
- import"./cli-569hj0bj.js";
21
- import"./cli-cehskjde.js";
22
- import"./cli-rqk6f6n6.js";
23
- import"./cli-7ea02wca.js";
24
- import"./cli-5ke3xe6y.js";
20
+ import"./cli-2cggp8ww.js";
21
+ import"./cli-cv3jt1ms.js";
22
+ import"./cli-wkmdw40s.js";
23
+ import"./cli-t3a6eknn.js";
25
24
  import"./cli-0v6na3yp.js";
26
25
  export {
27
26
  writePromptSyncProgress,
@@ -1,17 +1,18 @@
1
1
  import {
2
2
  selectTenantAndCreateKey
3
- } from "./cli-033n2mpb.js";
3
+ } from "./cli-d2zews6c.js";
4
+ import"./cli-4yarp5s1.js";
4
5
  import {
5
6
  loadAuthSession
6
- } from "./cli-9x9adrtj.js";
7
+ } from "./cli-9g8vz4sv.js";
7
8
  import {
8
9
  stringOption
9
- } from "./cli-569hj0bj.js";
10
+ } from "./cli-2cggp8ww.js";
10
11
  import {
11
12
  CliAuthError,
12
13
  resolveIngestUrl,
13
14
  resolveModaBaseUrl
14
- } from "./cli-5ke3xe6y.js";
15
+ } from "./cli-t3a6eknn.js";
15
16
  import"./cli-0v6na3yp.js";
16
17
 
17
18
  // src/provision.ts
@@ -1,15 +1,14 @@
1
1
  import {
2
2
  assertFlags
3
- } from "./cli-cehskjde.js";
3
+ } from "./cli-cv3jt1ms.js";
4
4
  import {
5
5
  callControlAPI
6
- } from "./cli-rqk6f6n6.js";
7
- import"./cli-7ea02wca.js";
6
+ } from "./cli-wkmdw40s.js";
8
7
  import {
9
8
  CliInputError,
10
9
  explicitOutputMode,
11
10
  resolveApiKey
12
- } from "./cli-5ke3xe6y.js";
11
+ } from "./cli-t3a6eknn.js";
13
12
  import"./cli-0v6na3yp.js";
14
13
 
15
14
  // src/registry.ts
@@ -3,8 +3,8 @@ import {
3
3
  installIntegrationSkill,
4
4
  readBundledIndex,
5
5
  readBundledSkillMd
6
- } from "./cli-38p87ykc.js";
7
- import"./cli-sf0g0fjg.js";
6
+ } from "./cli-frhm2wz7.js";
7
+ import"./cli-8dtnwp9r.js";
8
8
  import"./cli-0v6na3yp.js";
9
9
  export {
10
10
  readBundledSkillMd,
@@ -0,0 +1,18 @@
1
+ import {
2
+ parseScopeInt,
3
+ pullSkills,
4
+ runSkillSync,
5
+ runSkillsCommand
6
+ } from "./cli-54zhv6cx.js";
7
+ import"./cli-2cggp8ww.js";
8
+ import"./cli-cv3jt1ms.js";
9
+ import"./cli-wkmdw40s.js";
10
+ import"./cli-t3a6eknn.js";
11
+ import"./cli-8dtnwp9r.js";
12
+ import"./cli-0v6na3yp.js";
13
+ export {
14
+ runSkillsCommand,
15
+ runSkillSync,
16
+ pullSkills,
17
+ parseScopeInt
18
+ };
@@ -1,22 +1,21 @@
1
1
  import {
2
2
  runPromptsCommand
3
- } from "./cli-wf7gfa1e.js";
3
+ } from "./cli-s6tw1fje.js";
4
4
  import"./cli-mm48br00.js";
5
5
  import {
6
6
  runHarnessCommand
7
- } from "./cli-a5c9te95.js";
7
+ } from "./cli-4f6jkrnm.js";
8
8
  import"./cli-97fnztpy.js";
9
9
  import {
10
10
  runSkillsCommand
11
- } from "./cli-4j8nffsm.js";
12
- import"./cli-569hj0bj.js";
13
- import"./cli-cehskjde.js";
14
- import"./cli-rqk6f6n6.js";
15
- import"./cli-7ea02wca.js";
11
+ } from "./cli-54zhv6cx.js";
12
+ import"./cli-2cggp8ww.js";
13
+ import"./cli-cv3jt1ms.js";
14
+ import"./cli-wkmdw40s.js";
16
15
  import {
17
16
  CliInputError
18
- } from "./cli-5ke3xe6y.js";
19
- import"./cli-sf0g0fjg.js";
17
+ } from "./cli-t3a6eknn.js";
18
+ import"./cli-8dtnwp9r.js";
20
19
  import"./cli-0v6na3yp.js";
21
20
 
22
21
  // src/sync.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moda-ai/cli",
3
- "version": "1.55.21",
3
+ "version": "1.55.23",
4
4
  "description": "CLI for Moda: production monitoring and evals for AI agents.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema_version": "moda.skill_index.v1",
3
- "bundled_at": "2026-10-15T11:25:19.701Z",
4
- "cli_version": "1.55.21",
3
+ "bundled_at": "2026-10-15T12:38:17.947Z",
4
+ "cli_version": "1.55.23",
5
5
  "skills": [
6
6
  {
7
7
  "id": "integration-cloudflare-think",
@@ -1,30 +0,0 @@
1
- import {
2
- resolveTenantId
3
- } from "./cli-5ke3xe6y.js";
4
-
5
- // src/api-key-headers.ts
6
- var PLATFORM_API_KEY_PREFIX = "moda_pk_";
7
- var TENANT_HEADER = "x-moda-tenant-id";
8
- function isPlatformApiKey(key) {
9
- return Boolean(key?.startsWith(PLATFORM_API_KEY_PREFIX));
10
- }
11
- var platformTenantOverride;
12
- function setPlatformTenantOverride(tenantId) {
13
- platformTenantOverride = tenantId;
14
- }
15
- var TENANT_PATH = /\/tenants\/([^/?#]+)/;
16
- function tenantFromUrl(url) {
17
- const match = url ? TENANT_PATH.exec(url) : null;
18
- return match ? decodeURIComponent(match[1]) : undefined;
19
- }
20
- function apiKeyHeaders(key, options = {}, url) {
21
- const headers = { "x-api-key": key };
22
- if (isPlatformApiKey(key)) {
23
- const tenantId = tenantFromUrl(url) || platformTenantOverride || resolveTenantId(options);
24
- if (tenantId)
25
- headers[TENANT_HEADER] = tenantId;
26
- }
27
- return headers;
28
- }
29
-
30
- export { isPlatformApiKey, setPlatformTenantOverride, apiKeyHeaders };
@@ -1,19 +0,0 @@
1
- import {
2
- parseScopeInt,
3
- pullSkills,
4
- runSkillSync,
5
- runSkillsCommand
6
- } from "./cli-4j8nffsm.js";
7
- import"./cli-569hj0bj.js";
8
- import"./cli-cehskjde.js";
9
- import"./cli-rqk6f6n6.js";
10
- import"./cli-7ea02wca.js";
11
- import"./cli-5ke3xe6y.js";
12
- import"./cli-sf0g0fjg.js";
13
- import"./cli-0v6na3yp.js";
14
- export {
15
- runSkillsCommand,
16
- runSkillSync,
17
- pullSkills,
18
- parseScopeInt
19
- };