@mesh-tech/mesh-cli 0.34.1 → 0.34.3
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/assets/intent/intent-claude-gate.mjs +1 -1
- package/dist/bin/mesh.js +243 -243
- package/dist/bin/mesh.js.map +2 -2
- package/dist/build-info.json +2 -2
- package/dist/src/commands/local/seed.js +2 -2
- package/dist/src/commands/temporal.js +97 -97
- package/dist/src/docs/assemble.js +1 -1
- package/dist/src/docs/cli-reference.js +1 -1
- package/dist/src/index.js +9 -9
- package/dist/src/utils/temporal-codec.js +3 -3
- package/package.json +4 -4
- package/skills/core/SKILL.md +1 -1
- package/skills/pull-remote-agent-context/SKILL.md +1 -1
- package/templates/api-auth/README.md.hbs +4 -0
package/dist/src/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// packages/mesh-cli/src/utils/errors.ts
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
var MeshCliError = class extends Error {
|
|
4
4
|
remediation;
|
|
@@ -55,7 +55,7 @@ function handleCliError(err) {
|
|
|
55
55
|
process.exit(err instanceof MeshCliError ? err.exitCode : 1);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
//
|
|
58
|
+
// packages/mesh-cli/src/utils/log.ts
|
|
59
59
|
import chalk2 from "chalk";
|
|
60
60
|
function logPrefix(opts) {
|
|
61
61
|
const enabled = opts.envFlag === "1" || opts.envFlag !== "0" && !opts.isTTY;
|
|
@@ -107,11 +107,11 @@ function startHeartbeat(label, intervalMs = 15e3) {
|
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
//
|
|
110
|
+
// packages/mesh-cli/src/utils/context.ts
|
|
111
111
|
import * as fs2 from "fs";
|
|
112
112
|
import * as path2 from "path";
|
|
113
113
|
|
|
114
|
-
//
|
|
114
|
+
// packages/mesh-cli/src/utils/mesh-json.ts
|
|
115
115
|
import * as fs from "fs";
|
|
116
116
|
import * as path from "path";
|
|
117
117
|
var MESH_JSON = "mesh.json";
|
|
@@ -149,7 +149,7 @@ function findMeshJson(startDir) {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
//
|
|
152
|
+
// packages/mesh-cli/src/utils/context.ts
|
|
153
153
|
function findFileUpwardInRepo(filename, startDir = process.cwd()) {
|
|
154
154
|
let currentDir = startDir;
|
|
155
155
|
const root = path2.parse(currentDir).root;
|
|
@@ -459,7 +459,7 @@ function detectContext(stageArg, options = {}) {
|
|
|
459
459
|
return { tenant, stage, platformEnv, detectedTenant };
|
|
460
460
|
}
|
|
461
461
|
|
|
462
|
-
//
|
|
462
|
+
// packages/mesh-cli/src/utils/bastion.ts
|
|
463
463
|
import { SSMClient, GetParameterCommand } from "@aws-sdk/client-ssm";
|
|
464
464
|
async function getPlatformBastionInfo(tenant, platformEnv, region) {
|
|
465
465
|
const ssm = new SSMClient(region ? { region } : {});
|
|
@@ -543,7 +543,7 @@ async function getBastionInfo(tenant, platformEnv) {
|
|
|
543
543
|
};
|
|
544
544
|
}
|
|
545
545
|
|
|
546
|
-
//
|
|
546
|
+
// packages/mesh-cli/src/utils/credentials.ts
|
|
547
547
|
import {
|
|
548
548
|
SecretsManagerClient,
|
|
549
549
|
GetSecretValueCommand
|
|
@@ -647,7 +647,7 @@ async function readSstOutputs() {
|
|
|
647
647
|
return null;
|
|
648
648
|
}
|
|
649
649
|
|
|
650
|
-
//
|
|
650
|
+
// packages/mesh-cli/src/utils/pulumi.ts
|
|
651
651
|
import { execFileSync } from "child_process";
|
|
652
652
|
import * as path3 from "path";
|
|
653
653
|
import * as fs3 from "fs";
|
|
@@ -713,7 +713,7 @@ function pulumiStackOutput(appRoot, key, extraArgs, env) {
|
|
|
713
713
|
}
|
|
714
714
|
}
|
|
715
715
|
|
|
716
|
-
//
|
|
716
|
+
// packages/mesh-cli/src/utils/vpn.ts
|
|
717
717
|
import { execFile, execFileSync as execFileSync2 } from "node:child_process";
|
|
718
718
|
import { existsSync as existsSync4 } from "node:fs";
|
|
719
719
|
var TAILSCALE_PATHS = [
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
//
|
|
1
|
+
// packages/mesh-cli/src/utils/temporal-codec.ts
|
|
2
2
|
import { execFileSync } from "child_process";
|
|
3
3
|
import { webcrypto as crypto } from "node:crypto";
|
|
4
4
|
|
|
5
|
-
//
|
|
5
|
+
// packages/mesh-cli/src/utils/log.ts
|
|
6
6
|
import chalk from "chalk";
|
|
7
7
|
function logPrefix(opts) {
|
|
8
8
|
const enabled = opts.envFlag === "1" || opts.envFlag !== "0" && !opts.isTTY;
|
|
@@ -24,7 +24,7 @@ function logWarn(message) {
|
|
|
24
24
|
console.error(prefix() + chalk.yellow("\u26A0"), message);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
//
|
|
27
|
+
// packages/mesh-cli/src/utils/temporal-codec.ts
|
|
28
28
|
function resolveTemporalEncodingKeyFromK8s(namespace) {
|
|
29
29
|
const secretName = `${namespace}-temporal-encoding-key`;
|
|
30
30
|
try {
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mesh-tech/mesh-cli",
|
|
3
|
-
"version": "0.34.
|
|
3
|
+
"version": "0.34.3",
|
|
4
4
|
"description": "CLI for Mesh platform development utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "https://github.com/mesh-tech/mesh-platform.git",
|
|
10
|
-
"directory": "
|
|
10
|
+
"directory": "packages/mesh-cli"
|
|
11
11
|
},
|
|
12
12
|
"bin": {
|
|
13
13
|
"mesh": "./dist/bin/mesh.js"
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@mesh-tech/agent-contracts": "0.2.0",
|
|
45
|
-
"@mesh-tech/tsconfig": "2.
|
|
46
|
-
"@mesh-tech/workflow-viz": "0.3.
|
|
45
|
+
"@mesh-tech/tsconfig": "2.31.0",
|
|
46
|
+
"@mesh-tech/workflow-viz": "0.3.1",
|
|
47
47
|
"@tanstack/intent": "^0.3.6",
|
|
48
48
|
"@types/node": "^20.0.0",
|
|
49
49
|
"tsx": "^4.20.4"
|
package/skills/core/SKILL.md
CHANGED
|
@@ -378,7 +378,7 @@ mesh artifacts get <id>:<artifactId> --target fub
|
|
|
378
378
|
|
|
379
379
|
`--target` resolves the same `~/.config/mesh/agent-targets.json` registry the
|
|
380
380
|
MCP `agent_*` tools use; see the dedicated
|
|
381
|
-
`
|
|
381
|
+
`packages/mesh-cli/skills/pull-remote-agent-context` skill for the full recipe
|
|
382
382
|
(registry format, auth model, the `conversation_unavailable` → `mesh temporal
|
|
383
383
|
recover-conversation` break-glass path, and the MCP-vs-CLI relationship).
|
|
384
384
|
|
|
@@ -187,7 +187,7 @@ fub | jq ...`) rather than pass `--json` — output auto-detects non-TTY.
|
|
|
187
187
|
|
|
188
188
|
## See also
|
|
189
189
|
|
|
190
|
-
- `
|
|
190
|
+
- `packages/mesh-cli/skills/core/SKILL.md` — full `mesh` command reference,
|
|
191
191
|
including the `conversations`/`artifacts`/`temporal` rows this skill
|
|
192
192
|
builds on.
|
|
193
193
|
- `packages/agent-remote/agent-targets.example.json` — a worked registry
|
|
@@ -57,6 +57,10 @@ proxy (`auth: { provider: "mesh" }`). The proxy pins its sign-in callback to
|
|
|
57
57
|
that Service's own ingress hostname; a Service that answers for more than one
|
|
58
58
|
hostname (`ingress.extraHostnames`) sets `auth.deriveRedirectUrl: true` so each
|
|
59
59
|
host gets its own callback, and registers a redirect URI per host at the IdP.
|
|
60
|
+
The proxy keeps each session in its cookie, which grows with the user's roles;
|
|
61
|
+
once a user holds enough of them the load balancer rejects every request with a
|
|
62
|
+
`400`. `auth.sessionStore: "redis"` keeps sessions in a small Redis the Service
|
|
63
|
+
creates for itself, so the cookie stays under 1KB.
|
|
60
64
|
|
|
61
65
|
`index.ts` owns the whole access surface, so there is nothing to create by
|
|
62
66
|
hand: `ZitadelAppIdentity` makes the app's Zitadel project + roles,
|