lua-cli 3.27.0 → 3.29.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.
@@ -600,7 +600,8 @@ lua marketplace [noun] [action] [options]
600
600
  With no arguments, prompts for a domain — **Skills** or **Agent templates** — then hands off to that domain's own interactive picker. Pass `noun` (`skill` or `template`) to skip straight to a domain, and `action` for non-interactive mode.
601
601
 
602
602
  **Skill actions** (`lua marketplace skill <action>`):
603
- - `list`, `publish`, `edit`, `unlist`, `unpublish`, `mine` — manage your own listings
603
+ - `list`, `publish`, `edit`, `unlist`, `unpublish`, `transfer`, `org` — manage listings owned by the configured agent's organization
604
+ - `mine` — list skills originally authored by the caller; ownership is still shown separately through `creatorOrgId`
604
605
  - `search`, `view`, `install`, `update`, `uninstall`, `installed` — browse and manage skills on this agent
605
606
 
606
607
  **Template actions** (`lua marketplace template <action>`):
@@ -622,6 +623,9 @@ $ lua marketplace
622
623
  $ lua marketplace skill install --marketplace-id xyz --version-id v1 --force
623
624
  ✅ Skill installed successfully
624
625
 
626
+ $ lua marketplace skill transfer --marketplace-id xyz --new-org-id org-b --force
627
+ ✅ Skill is now owned by organization org-b
628
+
625
629
  $ lua marketplace template apply --template-id xyz --all-installed --force
626
630
  ```
627
631
 
package/docs/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # lua-cli v3.27.0
1
+ # lua-cli v3.29.0
2
2
 
3
- Welcome to the comprehensive API documentation for lua-cli v3.27.0. This guide covers every API, class, and function exported by the package.
3
+ Welcome to the comprehensive API documentation for lua-cli v3.29.0. This guide covers every API, class, and function exported by the package.
4
4
 
5
5
  ## 📚 Documentation Index
6
6
 
@@ -269,4 +269,3 @@ import { env } from 'lua-cli';
269
269
 
270
270
  const apiKey = env('MY_API_KEY');
271
271
  ```
272
-
@@ -48,11 +48,37 @@ interface LuaWebhookConfig {
48
48
  /** Optional Zod schema for body validation */
49
49
  bodySchema?: ZodType;
50
50
 
51
+ /** Optional HMAC-SHA256 signing key (see Request Verification) */
52
+ secret?: string;
53
+
51
54
  /** Function that executes the webhook logic */
52
55
  execute: (event: LuaWebhookEvent) => Promise<any>;
53
56
  }
54
57
  ```
55
58
 
59
+ ## Request Verification
60
+
61
+ A webhook URL is public. Set `secret` and Lua requires every request to carry
62
+ `x-lua-signature: sha256=<hex HMAC-SHA256 of the raw body>`; a missing, malformed
63
+ or wrong signature is rejected with 401 before `execute` runs. Omit `secret` and
64
+ behaviour is unchanged.
65
+
66
+ ```typescript
67
+ new LuaWebhook({
68
+ name: 'payment-webhook',
69
+ description: 'Handle payment events',
70
+ secret: 'a-long-random-string',
71
+ execute: async (event) => ({ received: true }),
72
+ });
73
+ ```
74
+
75
+ The signature covers the exact request bytes, so the sender must sign the same
76
+ string it transmits. `secret` must be a literal or a compile-time-resolvable
77
+ constant — the compiler cannot read `process.env.X` and fails the build rather
78
+ than deploying an unprotected webhook. The value is applied on every
79
+ `lua push webhook`, so rotation is a re-deploy; `secret: ''` clears it. No
80
+ command prints it.
81
+
56
82
  ## Event Structure
57
83
 
58
84
  The `execute` function receives a `LuaWebhookEvent`:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lua-cli",
3
- "version": "3.27.0",
3
+ "version": "3.29.0",
4
4
  "description": "Build, test, and deploy AI agents with custom tools, webhooks, and scheduled jobs. Features LuaAgent unified configuration, streaming chat, and batch deployment.",
5
5
  "readmeFilename": "README.md",
6
6
  "main": "dist/api-exports.js",
@@ -119,8 +119,8 @@
119
119
  "build:vendor": "node scripts/build-vendor.mjs",
120
120
  "build:dts": "tsc -p tsconfig.build.json",
121
121
  "build:dts-rollup": "node scripts/run-api-extractor.mjs",
122
- "test": "jest",
122
+ "test": "node ../../scripts/test-gate.mjs jest",
123
123
  "test:watch": "jest --watch",
124
- "test:coverage": "jest --coverage"
124
+ "test:coverage": "node ../../scripts/test-gate.mjs jest --coverage"
125
125
  }
126
126
  }
@@ -20,7 +20,7 @@
20
20
  "inquirer": "^12.9.6",
21
21
  "stripe": "^17.5.0",
22
22
  "js-yaml": "^4.1.0",
23
- "lua-cli": "^3.27.0",
23
+ "lua-cli": "^3.29.0",
24
24
  "openai": "^5.23.0",
25
25
  "uuid": "^13.0.0",
26
26
  "zod": "^3.24.1"