@kodycodes/cli 1.26.2 → 1.27.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/README.md +175 -167
- package/dist/add-mcp-install.d.ts +1 -1
- package/dist/api-token.d.ts +1 -1
- package/dist/auth-6ZE6QQXA.js +31 -0
- package/dist/auth-6ZE6QQXA.js.map +6 -0
- package/dist/auth-bootstrap.d.ts +1 -1
- package/dist/auth.d.ts +27 -3
- package/dist/bin.js +27 -3
- package/dist/bin.js.map +6 -1
- package/dist/capability-proxy.d.ts +1 -1
- package/dist/chunk-2IHISXHN.js +1413 -0
- package/dist/chunk-2IHISXHN.js.map +6 -0
- package/dist/chunk-2XPH7L2P.js +23 -0
- package/dist/chunk-2XPH7L2P.js.map +6 -0
- package/dist/chunk-3H72XY5R.js +535 -0
- package/dist/chunk-3H72XY5R.js.map +6 -0
- package/dist/chunk-46IJPEID.js +30 -0
- package/dist/chunk-46IJPEID.js.map +6 -0
- package/dist/chunk-4GIFJVGT.js +14 -0
- package/dist/chunk-4GIFJVGT.js.map +6 -0
- package/dist/chunk-5JIRHJQP.js +1016 -0
- package/dist/chunk-5JIRHJQP.js.map +6 -0
- package/dist/chunk-5ZBJAP6G.js +2005 -0
- package/dist/chunk-5ZBJAP6G.js.map +6 -0
- package/dist/chunk-6ZYUGXVW.js +26 -0
- package/dist/chunk-6ZYUGXVW.js.map +6 -0
- package/dist/chunk-7PRJ36I5.js +23 -0
- package/dist/chunk-7PRJ36I5.js.map +6 -0
- package/dist/chunk-BTL3PJ2H.js +38 -0
- package/dist/chunk-BTL3PJ2H.js.map +6 -0
- package/dist/chunk-CASGRYOF.js +21 -0
- package/dist/chunk-CASGRYOF.js.map +6 -0
- package/dist/chunk-CPS7HW4T.js +56 -0
- package/dist/chunk-CPS7HW4T.js.map +6 -0
- package/dist/chunk-CWWHR4FH.js +19 -0
- package/dist/chunk-CWWHR4FH.js.map +6 -0
- package/dist/chunk-D366STO5.js +2051 -0
- package/dist/chunk-D366STO5.js.map +6 -0
- package/dist/chunk-DW5UTJ6T.js +115 -0
- package/dist/chunk-DW5UTJ6T.js.map +6 -0
- package/dist/chunk-EJXEVGWF.js +47 -0
- package/dist/chunk-EJXEVGWF.js.map +6 -0
- package/dist/chunk-FBEZ6PZ7.js +746 -0
- package/dist/chunk-FBEZ6PZ7.js.map +6 -0
- package/dist/chunk-JOMBXQOS.js +435 -0
- package/dist/chunk-JOMBXQOS.js.map +6 -0
- package/dist/{package-local-runtime-source.js → chunk-LU7I7CQ4.js} +395 -52
- package/dist/chunk-LU7I7CQ4.js.map +6 -0
- package/dist/chunk-OZDWOZLV.js +964 -0
- package/dist/chunk-OZDWOZLV.js.map +6 -0
- package/dist/chunk-SLNAWWQK.js +64 -0
- package/dist/chunk-SLNAWWQK.js.map +6 -0
- package/dist/chunk-TUUFQYWP.js +348 -0
- package/dist/chunk-TUUFQYWP.js.map +6 -0
- package/dist/chunk-UW6AWLXX.js +43 -0
- package/dist/chunk-UW6AWLXX.js.map +6 -0
- package/dist/chunk-W2SAFAT4.js +1563 -0
- package/dist/chunk-W2SAFAT4.js.map +6 -0
- package/dist/chunk-XV6D6HSG.js +57 -0
- package/dist/chunk-XV6D6HSG.js.map +6 -0
- package/dist/chunk-Y4FOJETX.js +616 -0
- package/dist/chunk-Y4FOJETX.js.map +6 -0
- package/dist/chunk-YDWTXEKQ.js +469 -0
- package/dist/chunk-YDWTXEKQ.js.map +6 -0
- package/dist/chunk-ZILB2HWE.js +24 -0
- package/dist/chunk-ZILB2HWE.js.map +6 -0
- package/dist/cli.js +74 -1500
- package/dist/cli.js.map +6 -1
- package/dist/defaults.d.ts +1 -1
- package/dist/detect-running-hosts.d.ts +1 -1
- package/dist/dev/dev-assets.d.ts +1 -1
- package/dist/dev/dev-registry.d.ts +1 -1
- package/dist/dev/error-page.d.ts +1 -1
- package/dist/dev/live-reload.d.ts +2 -2
- package/dist/dev-command-5PDEIWOC.js +5025 -0
- package/dist/dev-command-5PDEIWOC.js.map +6 -0
- package/dist/dev-command.d.ts +1 -1
- package/dist/discover-login-identity.d.ts +6 -7
- package/dist/discover-org.d.ts +2 -3
- package/dist/generated/openapi-routes.d.ts +6 -0
- package/dist/git-credential-INB2UV4C.js +170 -0
- package/dist/git-credential-INB2UV4C.js.map +6 -0
- package/dist/install-ONEJRYZ3.js +10728 -0
- package/dist/install-ONEJRYZ3.js.map +6 -0
- package/dist/install.d.ts +1 -1
- package/dist/local-execute-I3BP5NEQ.js +395 -0
- package/dist/local-execute-I3BP5NEQ.js.map +6 -0
- package/dist/local-execute-auth.d.ts +2 -2
- package/dist/local-execute.d.ts +1 -1
- package/dist/local-gateway-fetch-forward.d.ts +2 -2
- package/dist/local-package-run-JFKNSNWM.js +23 -0
- package/dist/local-package-run-JFKNSNWM.js.map +6 -0
- package/dist/local-package-run.d.ts +2 -2
- package/dist/mock/mock-fetch-gateway.d.ts +2 -2
- package/dist/mock/mock-supported.d.ts +1 -1
- package/dist/mock-dep-resolve-B5ZH4U3H.js +60 -0
- package/dist/mock-dep-resolve-B5ZH4U3H.js.map +6 -0
- package/dist/mock-fetch-gateway-S2ULVFAI.js +35 -0
- package/dist/mock-fetch-gateway-S2ULVFAI.js.map +6 -0
- package/dist/mock-local-deps-2VVNJLFF.js +200 -0
- package/dist/mock-local-deps-2VVNJLFF.js.map +6 -0
- package/dist/mock-local-deps.d.ts +1 -1
- package/dist/mock-server-TFO7Q26H.js +22 -0
- package/dist/mock-server-TFO7Q26H.js.map +6 -0
- package/dist/oauth-browser.d.ts +42 -0
- package/dist/oauth-provider.d.ts +14 -19
- package/dist/open-api-client-SR4B7265.js +43 -0
- package/dist/open-api-client-SR4B7265.js.map +6 -0
- package/dist/open-api-client.d.ts +2 -1
- package/dist/org-535LB4PD.js +134 -0
- package/dist/org-535LB4PD.js.map +6 -0
- package/dist/org-resolve.d.ts +2 -0
- package/dist/package-app-dev.d.ts +2 -2
- package/dist/package-manifest-DFF6XCPV.js +15 -0
- package/dist/package-manifest-DFF6XCPV.js.map +6 -0
- package/dist/remote-execute-JN6DRFEU.js +129 -0
- package/dist/remote-execute-JN6DRFEU.js.map +6 -0
- package/dist/remote-execute.d.ts +3 -3
- package/dist/setup-git-MHK563LB.js +87 -0
- package/dist/setup-git-MHK563LB.js.map +6 -0
- package/dist/setup-git.d.ts +1 -1
- package/dist/skill-D74XVI6T.js +61 -0
- package/dist/skill-D74XVI6T.js.map +6 -0
- package/dist/store-27J4CQZ2.js +48 -0
- package/dist/store-27J4CQZ2.js.map +6 -0
- package/dist/structured-error-5MLWXYR3.js +14 -0
- package/dist/structured-error-5MLWXYR3.js.map +6 -0
- package/dist/structured-error.d.ts +1 -1
- package/dist/target-33ATHDUF.js +17 -0
- package/dist/target-33ATHDUF.js.map +6 -0
- package/package.json +12 -11
- package/skills/kody/SKILL.md +53 -50
- package/dist/add-mcp-install.js +0 -59
- package/dist/add-mcp-install.js.map +0 -1
- package/dist/api-token-store.js +0 -120
- package/dist/api-token-store.js.map +0 -1
- package/dist/api-token.js +0 -238
- package/dist/api-token.js.map +0 -1
- package/dist/auth-bootstrap.js +0 -373
- package/dist/auth-bootstrap.js.map +0 -1
- package/dist/auth.js +0 -386
- package/dist/auth.js.map +0 -1
- package/dist/capability-proxy.js +0 -527
- package/dist/capability-proxy.js.map +0 -1
- package/dist/credential-call-map.js +0 -155
- package/dist/credential-call-map.js.map +0 -1
- package/dist/credential-client-runtime-source.js +0 -9
- package/dist/credential-client-runtime-source.js.map +0 -1
- package/dist/credentialed-fetch-scan.js +0 -98
- package/dist/credentialed-fetch-scan.js.map +0 -1
- package/dist/defaults.js +0 -34
- package/dist/defaults.js.map +0 -1
- package/dist/detect-running-hosts.js +0 -13
- package/dist/detect-running-hosts.js.map +0 -1
- package/dist/dev/dev-assets.js +0 -202
- package/dist/dev/dev-assets.js.map +0 -1
- package/dist/dev/dev-bundler.js +0 -65
- package/dist/dev/dev-bundler.js.map +0 -1
- package/dist/dev/dev-events.js +0 -94
- package/dist/dev/dev-events.js.map +0 -1
- package/dist/dev/dev-port.js +0 -80
- package/dist/dev/dev-port.js.map +0 -1
- package/dist/dev/dev-protocol.js +0 -14
- package/dist/dev/dev-protocol.js.map +0 -1
- package/dist/dev/dev-registry.js +0 -95
- package/dist/dev/dev-registry.js.map +0 -1
- package/dist/dev/dev-watcher.js +0 -162
- package/dist/dev/dev-watcher.js.map +0 -1
- package/dist/dev/error-page.js +0 -64
- package/dist/dev/error-page.js.map +0 -1
- package/dist/dev/live-reload.js +0 -151
- package/dist/dev/live-reload.js.map +0 -1
- package/dist/dev/prebuild.js +0 -102
- package/dist/dev/prebuild.js.map +0 -1
- package/dist/dev/process-reaper.js +0 -151
- package/dist/dev/process-reaper.js.map +0 -1
- package/dist/dev/stack-trace.js +0 -56
- package/dist/dev/stack-trace.js.map +0 -1
- package/dist/dev/workerd-process.js +0 -118
- package/dist/dev/workerd-process.js.map +0 -1
- package/dist/dev-command.js +0 -676
- package/dist/dev-command.js.map +0 -1
- package/dist/discover-login-identity.js +0 -77
- package/dist/discover-login-identity.js.map +0 -1
- package/dist/discover-org.js +0 -62
- package/dist/discover-org.js.map +0 -1
- package/dist/git-credential.js +0 -147
- package/dist/git-credential.js.map +0 -1
- package/dist/help.js +0 -333
- package/dist/help.js.map +0 -1
- package/dist/host-catalog.js +0 -427
- package/dist/host-catalog.js.map +0 -1
- package/dist/host-config.js +0 -80
- package/dist/host-config.js.map +0 -1
- package/dist/http-error-body.js +0 -35
- package/dist/http-error-body.js.map +0 -1
- package/dist/install-hosts.js +0 -328
- package/dist/install-hosts.js.map +0 -1
- package/dist/install.js +0 -120
- package/dist/install.js.map +0 -1
- package/dist/invoke-passthrough.js +0 -60
- package/dist/invoke-passthrough.js.map +0 -1
- package/dist/local-bundle.js +0 -200
- package/dist/local-bundle.js.map +0 -1
- package/dist/local-execute-auth.js +0 -53
- package/dist/local-execute-auth.js.map +0 -1
- package/dist/local-execute.js +0 -338
- package/dist/local-execute.js.map +0 -1
- package/dist/local-gateway-fetch-forward.js +0 -135
- package/dist/local-gateway-fetch-forward.js.map +0 -1
- package/dist/local-host-runtime-surface.js +0 -75
- package/dist/local-host-runtime-surface.js.map +0 -1
- package/dist/local-package-graph.js +0 -405
- package/dist/local-package-graph.js.map +0 -1
- package/dist/local-package-run.js +0 -307
- package/dist/local-package-run.js.map +0 -1
- package/dist/local-runtime-bridge.js +0 -132
- package/dist/local-runtime-bridge.js.map +0 -1
- package/dist/local-runtime-source.js +0 -541
- package/dist/local-runtime-source.js.map +0 -1
- package/dist/login-callback-assets.js +0 -10
- package/dist/login-callback-assets.js.map +0 -1
- package/dist/login-callback-page.js +0 -362
- package/dist/login-callback-page.js.map +0 -1
- package/dist/mcp.d.ts +0 -34
- package/dist/mcp.js +0 -134
- package/dist/mcp.js.map +0 -1
- package/dist/mock/ensure-msw.js +0 -215
- package/dist/mock/ensure-msw.js.map +0 -1
- package/dist/mock/install-mock-fetch-shim.js +0 -36
- package/dist/mock/install-mock-fetch-shim.js.map +0 -1
- package/dist/mock/load-package-mocks.js +0 -136
- package/dist/mock/load-package-mocks.js.map +0 -1
- package/dist/mock/mock-fetch-gateway.js +0 -343
- package/dist/mock/mock-fetch-gateway.js.map +0 -1
- package/dist/mock/mock-gateway-fetch-shim.js +0 -104
- package/dist/mock/mock-gateway-fetch-shim.js.map +0 -1
- package/dist/mock/mock-server.js +0 -499
- package/dist/mock/mock-server.js.map +0 -1
- package/dist/mock/mock-storage.js +0 -186
- package/dist/mock/mock-storage.js.map +0 -1
- package/dist/mock/mock-supported.js +0 -63
- package/dist/mock/mock-supported.js.map +0 -1
- package/dist/mock-dep-resolve.js +0 -47
- package/dist/mock-dep-resolve.js.map +0 -1
- package/dist/mock-local-deps.js +0 -207
- package/dist/mock-local-deps.js.map +0 -1
- package/dist/network-error.js +0 -11
- package/dist/network-error.js.map +0 -1
- package/dist/node-engine.js +0 -21
- package/dist/node-engine.js.map +0 -1
- package/dist/oauth-provider.js +0 -107
- package/dist/oauth-provider.js.map +0 -1
- package/dist/onboarding-prompt.js +0 -15
- package/dist/onboarding-prompt.js.map +0 -1
- package/dist/open-api-client.js +0 -432
- package/dist/open-api-client.js.map +0 -1
- package/dist/open-url.js +0 -21
- package/dist/open-url.js.map +0 -1
- package/dist/org-resolve.js +0 -16
- package/dist/org-resolve.js.map +0 -1
- package/dist/org-slug.js +0 -11
- package/dist/org-slug.js.map +0 -1
- package/dist/org.js +0 -100
- package/dist/org.js.map +0 -1
- package/dist/package-app-dev.js +0 -922
- package/dist/package-app-dev.js.map +0 -1
- package/dist/package-collaborators.js +0 -179
- package/dist/package-collaborators.js.map +0 -1
- package/dist/package-info.js +0 -19
- package/dist/package-info.js.map +0 -1
- package/dist/package-local-runtime-source.js.map +0 -1
- package/dist/package-manifest.js +0 -364
- package/dist/package-manifest.js.map +0 -1
- package/dist/process-info.js +0 -14
- package/dist/process-info.js.map +0 -1
- package/dist/redact.js +0 -16
- package/dist/redact.js.map +0 -1
- package/dist/remote-execute.js +0 -108
- package/dist/remote-execute.js.map +0 -1
- package/dist/setup-git.js +0 -676
- package/dist/setup-git.js.map +0 -1
- package/dist/skill.js +0 -35
- package/dist/skill.js.map +0 -1
- package/dist/store.js +0 -597
- package/dist/store.js.map +0 -1
- package/dist/structured-error.js +0 -57
- package/dist/structured-error.js.map +0 -1
- package/dist/target.js +0 -52
- package/dist/target.js.map +0 -1
- package/dist/tool-result.js +0 -19
- package/dist/tool-result.js.map +0 -1
- package/dist/which.js +0 -22
- package/dist/which.js.map +0 -1
- package/dist/workerd-binary.js +0 -98
- package/dist/workerd-binary.js.map +0 -1
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
loadPackageManifest,
|
|
4
|
+
resolveExportModulePath
|
|
5
|
+
} from "./chunk-TUUFQYWP.js";
|
|
6
|
+
import {
|
|
7
|
+
LocalPackageGraphError,
|
|
8
|
+
bundleLocalUserModule,
|
|
9
|
+
hasLiteralDynamicSavedPackageImports,
|
|
10
|
+
listSavedPackageImports,
|
|
11
|
+
rewriteBareKodyBuiltinImports
|
|
12
|
+
} from "./chunk-2IHISXHN.js";
|
|
13
|
+
import "./chunk-XV6D6HSG.js";
|
|
14
|
+
import "./chunk-5JIRHJQP.js";
|
|
15
|
+
import "./chunk-4GIFJVGT.js";
|
|
16
|
+
import "./chunk-EJXEVGWF.js";
|
|
17
|
+
import "./chunk-3H72XY5R.js";
|
|
18
|
+
import "./chunk-BTL3PJ2H.js";
|
|
19
|
+
import "./chunk-UW6AWLXX.js";
|
|
20
|
+
|
|
21
|
+
// src/mock-local-deps.ts
|
|
22
|
+
import { access, readFile } from "node:fs/promises";
|
|
23
|
+
import { dirname, isAbsolute, join, resolve } from "node:path";
|
|
24
|
+
var localDepsRelativePath = ".kody/deps.json";
|
|
25
|
+
function parseKodyPackageSpecifier(specifier) {
|
|
26
|
+
if (!specifier.startsWith("kody:@")) return null;
|
|
27
|
+
const rest = specifier.slice("kody:".length);
|
|
28
|
+
const nameEnd = rest.startsWith("@") ? (() => {
|
|
29
|
+
const scopeSlash = rest.indexOf("/");
|
|
30
|
+
if (scopeSlash === -1) return -1;
|
|
31
|
+
return rest.indexOf("/", scopeSlash + 1);
|
|
32
|
+
})() : rest.indexOf("/");
|
|
33
|
+
if (nameEnd === -1) {
|
|
34
|
+
return { packageName: rest, exportKey: "." };
|
|
35
|
+
}
|
|
36
|
+
const packageName = rest.slice(0, nameEnd);
|
|
37
|
+
const exportPath = rest.slice(nameEnd + 1);
|
|
38
|
+
return {
|
|
39
|
+
packageName,
|
|
40
|
+
exportKey: exportPath ? `./${exportPath}` : "."
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
async function loadLocalDepMap(packageRoot) {
|
|
44
|
+
const fromFile = await readDepsJson(join(packageRoot, localDepsRelativePath));
|
|
45
|
+
const fromManifest = await readDepsFromPackageJson(packageRoot);
|
|
46
|
+
return { ...fromManifest, ...fromFile };
|
|
47
|
+
}
|
|
48
|
+
async function readDepsJson(path) {
|
|
49
|
+
try {
|
|
50
|
+
const raw = JSON.parse(await readFile(path, "utf8"));
|
|
51
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return {};
|
|
52
|
+
const out = {};
|
|
53
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
54
|
+
if (typeof value === "string" && value.trim())
|
|
55
|
+
out[normalizeDepKey(key)] = value.trim();
|
|
56
|
+
}
|
|
57
|
+
return out;
|
|
58
|
+
} catch {
|
|
59
|
+
return {};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function readDepsFromPackageJson(packageRoot) {
|
|
63
|
+
try {
|
|
64
|
+
const raw = JSON.parse(
|
|
65
|
+
await readFile(join(packageRoot, "package.json"), "utf8")
|
|
66
|
+
);
|
|
67
|
+
const map = raw.kody?.localDeps;
|
|
68
|
+
if (!map || typeof map !== "object") return {};
|
|
69
|
+
const out = {};
|
|
70
|
+
for (const [key, value] of Object.entries(map)) {
|
|
71
|
+
if (typeof value === "string" && value.trim())
|
|
72
|
+
out[normalizeDepKey(key)] = value.trim();
|
|
73
|
+
}
|
|
74
|
+
return out;
|
|
75
|
+
} catch {
|
|
76
|
+
return {};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function normalizeDepKey(key) {
|
|
80
|
+
const trimmed = key.trim();
|
|
81
|
+
if (trimmed.startsWith("kody:")) return trimmed.slice("kody:".length);
|
|
82
|
+
return trimmed;
|
|
83
|
+
}
|
|
84
|
+
function resolveDepRoot(packageRoot, depKey, map) {
|
|
85
|
+
const normalized = normalizeDepKey(depKey);
|
|
86
|
+
const rel = map[normalized] ?? map[`kody:${normalized}`];
|
|
87
|
+
if (!rel) return void 0;
|
|
88
|
+
return isAbsolute(rel) ? rel : resolve(packageRoot, rel);
|
|
89
|
+
}
|
|
90
|
+
async function resolveLocalPackageModules(input) {
|
|
91
|
+
const imports = await listSavedPackageImports(input.code);
|
|
92
|
+
if (imports.length === 0) {
|
|
93
|
+
return { modules: [], unresolved: [] };
|
|
94
|
+
}
|
|
95
|
+
if (await hasLiteralDynamicSavedPackageImports(input.code)) {
|
|
96
|
+
throw new LocalPackageGraphError(
|
|
97
|
+
`Local execute cannot bind literal dynamic import("kody:@\u2026") yet \u2014 use a static import.`,
|
|
98
|
+
{ code: "unsupported_dynamic_package_import" }
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
const packageRoot = input.packageRoot ?? input.selfManifest?.root;
|
|
102
|
+
const depMap = packageRoot ? await loadLocalDepMap(packageRoot) : {};
|
|
103
|
+
const selfManifest = input.selfManifest;
|
|
104
|
+
const modules = [];
|
|
105
|
+
const unresolved = [];
|
|
106
|
+
const seen = /* @__PURE__ */ new Set();
|
|
107
|
+
async function resolveOne(specifier) {
|
|
108
|
+
if (seen.has(specifier)) return;
|
|
109
|
+
seen.add(specifier);
|
|
110
|
+
const parsed = parseKodyPackageSpecifier(specifier);
|
|
111
|
+
if (!parsed) {
|
|
112
|
+
unresolved.push(specifier);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
let manifest;
|
|
116
|
+
if (selfManifest && parsed.packageName === selfManifest.name) {
|
|
117
|
+
manifest = selfManifest;
|
|
118
|
+
} else if (packageRoot) {
|
|
119
|
+
const depRoot = resolveDepRoot(packageRoot, parsed.packageName, depMap);
|
|
120
|
+
if (depRoot) {
|
|
121
|
+
try {
|
|
122
|
+
await access(join(depRoot, "package.json"));
|
|
123
|
+
manifest = await loadPackageManifest(depRoot);
|
|
124
|
+
} catch {
|
|
125
|
+
throw new LocalPackageGraphError(
|
|
126
|
+
`Local dep ${JSON.stringify(parsed.packageName)} points at ${JSON.stringify(depRoot)} but no package.json was found.`,
|
|
127
|
+
{ code: "local_dep_missing" }
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (!manifest) {
|
|
133
|
+
unresolved.push(specifier);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
let modulePath;
|
|
137
|
+
try {
|
|
138
|
+
modulePath = resolveExportModulePath(manifest, parsed.exportKey);
|
|
139
|
+
} catch (error) {
|
|
140
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
141
|
+
throw new LocalPackageGraphError(
|
|
142
|
+
`Could not resolve local ${specifier}: ${message}`,
|
|
143
|
+
{ code: "local_dep_export_missing" }
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
input.onStatus?.(`Bundling local dep ${specifier} from ${modulePath}\u2026`);
|
|
147
|
+
let bundled;
|
|
148
|
+
try {
|
|
149
|
+
bundled = await bundleLocalUserModule(modulePath);
|
|
150
|
+
} catch (error) {
|
|
151
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
152
|
+
const tip = /Could not resolve ["']kody:@/i.test(message) ? `Tip: Map the dependency in .kody/deps.json (or package.json#kody.localDeps), keep it in this package's exports, or log in so published package-graph can supply it.` : /Could not resolve|Cannot find module|ENOENT/i.test(message) ? `Tip: Fix the missing import inside the local dep, or run \`npm install\` in that package's directory, then retry.` : `Tip: Check the local dep source at ${modulePath}.`;
|
|
153
|
+
throw new LocalPackageGraphError(
|
|
154
|
+
`Could not bundle local dep ${specifier} from ${modulePath}. ${message}
|
|
155
|
+
${tip}`,
|
|
156
|
+
{ code: "local_dep_bundle_failed" }
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
const esModule = await rewriteBareKodyBuiltinImports(bundled);
|
|
160
|
+
modules.push({ name: specifier, esModule });
|
|
161
|
+
for (const nested of await listSavedPackageImports(esModule)) {
|
|
162
|
+
await resolveOne(nested);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
for (const specifier of imports) {
|
|
166
|
+
await resolveOne(specifier);
|
|
167
|
+
}
|
|
168
|
+
return { modules, unresolved };
|
|
169
|
+
}
|
|
170
|
+
function mergePackageGraphs(local, published) {
|
|
171
|
+
const byName = /* @__PURE__ */ new Map();
|
|
172
|
+
for (const module of published.modules) byName.set(module.name, module);
|
|
173
|
+
for (const module of local) byName.set(module.name, module);
|
|
174
|
+
return {
|
|
175
|
+
modules: [...byName.values()],
|
|
176
|
+
imports: [
|
|
177
|
+
.../* @__PURE__ */ new Set([...published.imports, ...local.map((module) => module.name)])
|
|
178
|
+
]
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
async function tryLoadSelfManifest(cwd) {
|
|
182
|
+
try {
|
|
183
|
+
return await loadPackageManifest(cwd);
|
|
184
|
+
} catch {
|
|
185
|
+
return void 0;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
function packageRootOf(manifestPath) {
|
|
189
|
+
return dirname(manifestPath);
|
|
190
|
+
}
|
|
191
|
+
export {
|
|
192
|
+
loadLocalDepMap,
|
|
193
|
+
localDepsRelativePath,
|
|
194
|
+
mergePackageGraphs,
|
|
195
|
+
packageRootOf,
|
|
196
|
+
parseKodyPackageSpecifier,
|
|
197
|
+
resolveLocalPackageModules,
|
|
198
|
+
tryLoadSelfManifest
|
|
199
|
+
};
|
|
200
|
+
//# sourceMappingURL=mock-local-deps-2VVNJLFF.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/mock-local-deps.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* 2. `.kody/deps.json` or `package.json#kody.localDeps` path map
|
|
8
8
|
* 3. Remaining imports fall through to published package-graph (when auth exists)
|
|
9
9
|
*/
|
|
10
|
-
import type
|
|
10
|
+
import { type LocalPackageGraph, type LocalPackageModule } from './local-package-graph.js';
|
|
11
11
|
import { type KodyPackageManifest } from './package-manifest.js';
|
|
12
12
|
export type LocalDepMap = Record<string, string>;
|
|
13
13
|
/** Relative path for the optional local-deps map file. */
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
ensureMockTarget,
|
|
4
|
+
isMockApiToken,
|
|
5
|
+
mintMockApiToken,
|
|
6
|
+
startMockServer,
|
|
7
|
+
withMockServer
|
|
8
|
+
} from "./chunk-FBEZ6PZ7.js";
|
|
9
|
+
import "./chunk-Y4FOJETX.js";
|
|
10
|
+
import "./chunk-XV6D6HSG.js";
|
|
11
|
+
import "./chunk-DW5UTJ6T.js";
|
|
12
|
+
import "./chunk-4GIFJVGT.js";
|
|
13
|
+
import "./chunk-EJXEVGWF.js";
|
|
14
|
+
import "./chunk-UW6AWLXX.js";
|
|
15
|
+
export {
|
|
16
|
+
ensureMockTarget,
|
|
17
|
+
isMockApiToken,
|
|
18
|
+
mintMockApiToken,
|
|
19
|
+
startMockServer,
|
|
20
|
+
withMockServer
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=mock-server-TFO7Q26H.js.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as oauth from 'oauth4webapi';
|
|
2
|
+
export type OAuthTokenSet = {
|
|
3
|
+
accessToken: string;
|
|
4
|
+
refreshToken?: string;
|
|
5
|
+
tokenType: string;
|
|
6
|
+
expiresIn?: number;
|
|
7
|
+
scope?: string;
|
|
8
|
+
issuer: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function discoverCliAuthorizationServer(input: {
|
|
11
|
+
issuer: URL;
|
|
12
|
+
fetchFn?: typeof fetch;
|
|
13
|
+
}): Promise<oauth.AuthorizationServer>;
|
|
14
|
+
export declare function cliOAuthClient(mcpUrl: string): oauth.Client;
|
|
15
|
+
export declare function buildCliAuthorizationUrl(input: {
|
|
16
|
+
authorizationServer: oauth.AuthorizationServer;
|
|
17
|
+
mcpUrl: string;
|
|
18
|
+
redirectUri?: URL;
|
|
19
|
+
state: string;
|
|
20
|
+
codeChallenge: string;
|
|
21
|
+
org?: string;
|
|
22
|
+
scope?: string;
|
|
23
|
+
}): Promise<URL>;
|
|
24
|
+
export declare function exchangeAuthorizationCode(input: {
|
|
25
|
+
authorizationServer: oauth.AuthorizationServer;
|
|
26
|
+
mcpUrl: string;
|
|
27
|
+
redirectUri: URL;
|
|
28
|
+
callback: URL;
|
|
29
|
+
state: string;
|
|
30
|
+
codeVerifier: string;
|
|
31
|
+
fetchFn?: typeof fetch;
|
|
32
|
+
}): Promise<OAuthTokenSet>;
|
|
33
|
+
export declare function refreshOAuthTokens(input: {
|
|
34
|
+
issuer: string;
|
|
35
|
+
mcpUrl: string;
|
|
36
|
+
refreshToken: string;
|
|
37
|
+
fetchFn?: typeof fetch;
|
|
38
|
+
}): Promise<OAuthTokenSet>;
|
|
39
|
+
export declare function createPkcePair(): Promise<{
|
|
40
|
+
verifier: string;
|
|
41
|
+
challenge: string;
|
|
42
|
+
}>;
|
package/dist/oauth-provider.d.ts
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type { StoredCredentials } from './store.js';
|
|
1
|
+
import { type StoredCredentials } from './store.js';
|
|
3
2
|
export { orgSlugFromFlag } from './org-slug.js';
|
|
4
|
-
export
|
|
5
|
-
|
|
3
|
+
export type CliClientMetadata = {
|
|
4
|
+
client_name: string;
|
|
5
|
+
client_uri: string;
|
|
6
|
+
redirect_uris: Array<string>;
|
|
7
|
+
grant_types: Array<string>;
|
|
8
|
+
response_types: Array<string>;
|
|
9
|
+
token_endpoint_auth_method: 'none';
|
|
10
|
+
application_type: 'native';
|
|
11
|
+
scope: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function buildCliClientMetadata(): CliClientMetadata;
|
|
14
|
+
/** Issuer stamp restored from durable CLI storage. */
|
|
6
15
|
export declare function issuerFromStoredCredentials(credentials: StoredCredentials): string;
|
|
7
|
-
export declare function
|
|
8
|
-
mcpUrl: string;
|
|
9
|
-
redirectUri: URL;
|
|
10
|
-
existing?: StoredCredentials;
|
|
11
|
-
loadStoredTokens: boolean;
|
|
12
|
-
openBrowser: boolean;
|
|
13
|
-
expectedState: string;
|
|
14
|
-
/**
|
|
15
|
-
* Bind the grant to this org. Set on the authorize URL (`?org=`).
|
|
16
|
-
* Do not put it on the OAuth `resource`: production rejects a resource
|
|
17
|
-
* that adds a query (`?org=` or `?profile=`).
|
|
18
|
-
*/
|
|
19
|
-
org?: string;
|
|
20
|
-
onAuthorizationUrl?: (url: URL) => void;
|
|
21
|
-
}): OAuthClientProvider;
|
|
16
|
+
export declare function cliMetadataUrl(mcpUrl: string): string;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
OpenApiError,
|
|
4
|
+
apiOperationUsesQueryInputs,
|
|
5
|
+
assertApiOperationAllowed,
|
|
6
|
+
buildOpenApiHttpRequest,
|
|
7
|
+
callOpenApiOperation,
|
|
8
|
+
clearOpenApiRouteCache,
|
|
9
|
+
cliCredentialBootstrapRedeemOperationId,
|
|
10
|
+
indexOpenApiOperations,
|
|
11
|
+
loadOpenApiOperations,
|
|
12
|
+
openApiDocumentPath,
|
|
13
|
+
openApiGet,
|
|
14
|
+
openApiRequest,
|
|
15
|
+
searchWithApiToken,
|
|
16
|
+
toolResultFromHttpBody,
|
|
17
|
+
whoamiWithApiToken
|
|
18
|
+
} from "./chunk-W2SAFAT4.js";
|
|
19
|
+
import "./chunk-46IJPEID.js";
|
|
20
|
+
import "./chunk-DW5UTJ6T.js";
|
|
21
|
+
import "./chunk-5JIRHJQP.js";
|
|
22
|
+
import "./chunk-4GIFJVGT.js";
|
|
23
|
+
import "./chunk-3H72XY5R.js";
|
|
24
|
+
import "./chunk-BTL3PJ2H.js";
|
|
25
|
+
import "./chunk-UW6AWLXX.js";
|
|
26
|
+
export {
|
|
27
|
+
OpenApiError,
|
|
28
|
+
apiOperationUsesQueryInputs,
|
|
29
|
+
assertApiOperationAllowed,
|
|
30
|
+
buildOpenApiHttpRequest,
|
|
31
|
+
callOpenApiOperation,
|
|
32
|
+
clearOpenApiRouteCache,
|
|
33
|
+
cliCredentialBootstrapRedeemOperationId,
|
|
34
|
+
indexOpenApiOperations,
|
|
35
|
+
loadOpenApiOperations,
|
|
36
|
+
openApiDocumentPath,
|
|
37
|
+
openApiGet,
|
|
38
|
+
openApiRequest,
|
|
39
|
+
searchWithApiToken,
|
|
40
|
+
toolResultFromHttpBody,
|
|
41
|
+
whoamiWithApiToken
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=open-api-client-SR4B7265.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ToolCallResult } from './tool-result.js';
|
|
2
2
|
export type OpenApiClientInput = {
|
|
3
3
|
apiUrl?: string;
|
|
4
4
|
token: string;
|
|
@@ -85,6 +85,7 @@ export declare function searchWithApiToken(input: OpenApiClientInput & {
|
|
|
85
85
|
limit?: number;
|
|
86
86
|
entity?: string;
|
|
87
87
|
}): Promise<ToolCallResult>;
|
|
88
|
+
export declare function toolResultFromHttpBody(payload: unknown): ToolCallResult;
|
|
88
89
|
export declare function whoamiWithApiToken(input: OpenApiClientInput): Promise<{
|
|
89
90
|
mcpUrl?: undefined;
|
|
90
91
|
apiUrl: string;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
resolveOrgSlug
|
|
4
|
+
} from "./chunk-7PRJ36I5.js";
|
|
5
|
+
import {
|
|
6
|
+
orgEnvVar,
|
|
7
|
+
orgSlugFromFlag
|
|
8
|
+
} from "./chunk-CWWHR4FH.js";
|
|
9
|
+
import {
|
|
10
|
+
listStoredOrgs,
|
|
11
|
+
loadCredentialStore,
|
|
12
|
+
promotePendingOrg,
|
|
13
|
+
setActiveOrg
|
|
14
|
+
} from "./chunk-3H72XY5R.js";
|
|
15
|
+
import {
|
|
16
|
+
defaultMcpUrl
|
|
17
|
+
} from "./chunk-BTL3PJ2H.js";
|
|
18
|
+
import "./chunk-UW6AWLXX.js";
|
|
19
|
+
|
|
20
|
+
// src/org.ts
|
|
21
|
+
import { createInterface } from "node:readline";
|
|
22
|
+
function formatStoredOrgsHelpBlock(orgs, options = {}) {
|
|
23
|
+
const indent = options.indent ?? " ";
|
|
24
|
+
if (orgs.length === 0) {
|
|
25
|
+
return `${indent}Not logged in. Run \`kody login\`.
|
|
26
|
+
`;
|
|
27
|
+
}
|
|
28
|
+
const lines = [`${indent}Logged-in orgs:`];
|
|
29
|
+
for (const org of orgs) {
|
|
30
|
+
const mark = org.active ? "*" : " ";
|
|
31
|
+
const pending = org.pending ? " (slug pending \u2014 run any authenticated command)" : "";
|
|
32
|
+
lines.push(
|
|
33
|
+
`${indent} ${mark} ${org.slug}${org.active ? " (active)" : ""}${pending}`
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
return `${lines.join("\n")}
|
|
37
|
+
`;
|
|
38
|
+
}
|
|
39
|
+
function readStoredOrgsForHelp(mcpUrl = defaultMcpUrl, backend, resolution) {
|
|
40
|
+
try {
|
|
41
|
+
return listStoredOrgs(mcpUrl, backend, resolution);
|
|
42
|
+
} catch {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function formatOrgListHuman(orgs) {
|
|
47
|
+
if (orgs.length === 0) {
|
|
48
|
+
return "Not logged in. Run `kody login`.\n";
|
|
49
|
+
}
|
|
50
|
+
const lines = [];
|
|
51
|
+
for (const org of orgs) {
|
|
52
|
+
const mark = org.active ? "*" : " ";
|
|
53
|
+
const pending = org.pending ? " (slug pending)" : "";
|
|
54
|
+
lines.push(`${mark} ${org.slug}${org.active ? " (active)" : ""}${pending}`);
|
|
55
|
+
}
|
|
56
|
+
return `${lines.join("\n")}
|
|
57
|
+
`;
|
|
58
|
+
}
|
|
59
|
+
function formatOrgListJson(orgs) {
|
|
60
|
+
return `${JSON.stringify(
|
|
61
|
+
{
|
|
62
|
+
orgs: orgs.map((org) => ({
|
|
63
|
+
slug: org.pending ? null : org.slug,
|
|
64
|
+
active: org.active,
|
|
65
|
+
...org.pending ? { pending: true } : {}
|
|
66
|
+
}))
|
|
67
|
+
},
|
|
68
|
+
null,
|
|
69
|
+
2
|
|
70
|
+
)}
|
|
71
|
+
`;
|
|
72
|
+
}
|
|
73
|
+
async function chooseOrgInteractively(input) {
|
|
74
|
+
const isTTY = input.isTTY ?? Boolean(process.stdin.isTTY);
|
|
75
|
+
if (!isTTY) {
|
|
76
|
+
throw new Error(
|
|
77
|
+
"`kody org use` without a slug requires a TTY. Pass an org slug: `kody org use <slug>`."
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
const usable = input.orgs.filter((org) => !org.pending);
|
|
81
|
+
if (usable.length === 0) {
|
|
82
|
+
throw new Error(
|
|
83
|
+
"No named org logins yet. Run `kody login`, or an authenticated command to finish migrating a legacy session."
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
const stdout = input.stdout ?? process.stdout;
|
|
87
|
+
stdout.write("Select an organization:\n");
|
|
88
|
+
usable.forEach((org, index) => {
|
|
89
|
+
const active = org.active ? " (active)" : "";
|
|
90
|
+
stdout.write(` ${index + 1}) ${org.slug}${active}
|
|
91
|
+
`);
|
|
92
|
+
});
|
|
93
|
+
const rl = createInterface({
|
|
94
|
+
input: input.stdin ?? process.stdin,
|
|
95
|
+
output: stdout,
|
|
96
|
+
terminal: true
|
|
97
|
+
});
|
|
98
|
+
try {
|
|
99
|
+
const answer = await new Promise((resolve) => {
|
|
100
|
+
rl.question("Number (or slug): ", (line) => resolve(line.trim()));
|
|
101
|
+
});
|
|
102
|
+
if (!answer) {
|
|
103
|
+
throw new Error("No organization selected.");
|
|
104
|
+
}
|
|
105
|
+
const asNumber = Number(answer);
|
|
106
|
+
if (Number.isInteger(asNumber) && asNumber >= 1 && asNumber <= usable.length) {
|
|
107
|
+
return usable[asNumber - 1].slug;
|
|
108
|
+
}
|
|
109
|
+
return orgSlugFromFlag(answer);
|
|
110
|
+
} finally {
|
|
111
|
+
rl.close();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function useOrg(slug, mcpUrl = defaultMcpUrl, backend, resolution) {
|
|
115
|
+
return setActiveOrg(mcpUrl, orgSlugFromFlag(slug), backend, resolution);
|
|
116
|
+
}
|
|
117
|
+
function promoteLegacyIfNeeded(mcpUrl, orgSlug, backend, resolution) {
|
|
118
|
+
const snapshot = loadCredentialStore(mcpUrl, backend, resolution);
|
|
119
|
+
if (!snapshot?.pending) return snapshot;
|
|
120
|
+
return promotePendingOrg(mcpUrl, orgSlug, backend, resolution);
|
|
121
|
+
}
|
|
122
|
+
export {
|
|
123
|
+
chooseOrgInteractively,
|
|
124
|
+
formatOrgListHuman,
|
|
125
|
+
formatOrgListJson,
|
|
126
|
+
formatStoredOrgsHelpBlock,
|
|
127
|
+
orgEnvVar,
|
|
128
|
+
orgSlugFromFlag,
|
|
129
|
+
promoteLegacyIfNeeded,
|
|
130
|
+
readStoredOrgsForHelp,
|
|
131
|
+
resolveOrgSlug,
|
|
132
|
+
useOrg
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=org-535LB4PD.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/org.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/org-resolve.d.ts
CHANGED
|
@@ -6,4 +6,6 @@ export { orgEnvVar, orgSlugFromFlag } from './org-slug.js';
|
|
|
6
6
|
export declare function resolveOrgSlug(input: {
|
|
7
7
|
flag?: string;
|
|
8
8
|
env?: NodeJS.ProcessEnv;
|
|
9
|
+
/** Active org from the credential store. Used when flag and env are absent. */
|
|
10
|
+
activeOrg?: string | null;
|
|
9
11
|
}): string | undefined;
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
import { type DevEvent } from './dev/dev-events.js';
|
|
12
12
|
import { type DevServerStatus } from './dev/dev-registry.js';
|
|
13
13
|
import { type PackageLocalContext } from './package-local-runtime-source.js';
|
|
14
|
-
import type
|
|
15
|
-
import type
|
|
14
|
+
import { type KodyPackageManifest } from './package-manifest.js';
|
|
15
|
+
import { type KodyTarget } from './target.js';
|
|
16
16
|
export type PackageAppDevOptions = {
|
|
17
17
|
manifest: KodyPackageManifest;
|
|
18
18
|
token: string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
loadPackageManifest,
|
|
4
|
+
resolveExportModulePath,
|
|
5
|
+
resolvePackagePath
|
|
6
|
+
} from "./chunk-TUUFQYWP.js";
|
|
7
|
+
import "./chunk-XV6D6HSG.js";
|
|
8
|
+
import "./chunk-EJXEVGWF.js";
|
|
9
|
+
import "./chunk-UW6AWLXX.js";
|
|
10
|
+
export {
|
|
11
|
+
loadPackageManifest,
|
|
12
|
+
resolveExportModulePath,
|
|
13
|
+
resolvePackagePath
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=package-manifest-DFF6XCPV.js.map
|