@lamalibre/create-lamaste 4.3.1 → 4.4.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.
Files changed (72) hide show
  1. package/package.json +2 -2
  2. package/src/lib/service-config.js +6 -0
  3. package/vendor/docs/00-introduction/how-it-works.md +2 -2
  4. package/vendor/docs/00-introduction/quickstart.md +5 -5
  5. package/vendor/docs/00-introduction/what-is-lamaste.md +5 -5
  6. package/vendor/docs/01-concepts/certificates.md +3 -3
  7. package/vendor/docs/01-concepts/mtls.md +2 -2
  8. package/vendor/docs/01-concepts/security-model.md +38 -1
  9. package/vendor/docs/01-concepts/tickets.md +2 -2
  10. package/vendor/docs/01-concepts/tunneling.md +4 -4
  11. package/vendor/docs/02-guides/agent-setup.md +6 -6
  12. package/vendor/docs/02-guides/certificate-management.md +2 -2
  13. package/vendor/docs/02-guides/cloud-provisioning.md +3 -3
  14. package/vendor/docs/02-guides/desktop-app-setup.md +11 -11
  15. package/vendor/docs/02-guides/installation.md +3 -3
  16. package/vendor/docs/02-guides/onboarding.md +2 -2
  17. package/vendor/docs/02-guides/standalone-plugin-with-tickets.md +2 -2
  18. package/vendor/docs/03-architecture/installer-flow.md +2 -2
  19. package/vendor/docs/03-architecture/installer.md +4 -4
  20. package/vendor/docs/03-architecture/management-flow.md +1 -1
  21. package/vendor/docs/03-architecture/overview.md +5 -5
  22. package/vendor/docs/03-architecture/panel-client.md +7 -7
  23. package/vendor/docs/03-architecture/panel-server.md +2 -2
  24. package/vendor/docs/03-architecture/state-management.md +2 -2
  25. package/vendor/docs/03-architecture/system-overview.md +1 -1
  26. package/vendor/docs/04-api-reference/agent-hosted-plugins.md +393 -33
  27. package/vendor/docs/04-api-reference/app-host.md +87 -38
  28. package/vendor/docs/04-api-reference/audit-and-notifications.md +10 -10
  29. package/vendor/docs/04-api-reference/certificates.md +22 -19
  30. package/vendor/docs/04-api-reference/lifecycle-hooks.md +33 -11
  31. package/vendor/docs/04-api-reference/onboarding.md +1 -1
  32. package/vendor/docs/04-api-reference/overview.md +137 -135
  33. package/vendor/docs/04-api-reference/tunnels.md +14 -10
  34. package/vendor/docs/05-operations/backup-and-restore.md +2 -1
  35. package/vendor/docs/05-operations/uninstalling.md +1 -1
  36. package/vendor/docs/05-operations/upgrades.md +6 -6
  37. package/vendor/docs/06-reference/config-files.md +89 -84
  38. package/vendor/docs/06-reference/glossary.md +3 -3
  39. package/vendor/docs/06-reference/installer-flags.md +13 -13
  40. package/vendor/docs/06-reference/ports-and-services.md +1 -1
  41. package/vendor/docs/06-reference/troubleshooting.md +8 -8
  42. package/vendor/docs/gatekeeper-design.md +8 -8
  43. package/vendor/docs/identity-directory-design.md +2 -2
  44. package/vendor/docs/package.json +1 -1
  45. package/vendor/docs/todo/lib-cli-desktop-refactor.md +27 -27
  46. package/vendor/gatekeeper/package.json +2 -2
  47. package/vendor/server/bin/lamaste-server.js +4 -1
  48. package/vendor/server/package.json +4 -3
  49. package/vendor/server/src/commands/plugin-settings.js +541 -0
  50. package/vendor/server/src/commands/plugins.js +94 -27
  51. package/vendor/server/src/panel-api.js +36 -4
  52. package/vendor/server/src/plugin-approval.js +78 -0
  53. package/vendor/server/src/plugin-settings.js +699 -0
  54. package/vendor/server-ui/dist/assets/index-25wo_8av.css +1 -0
  55. package/vendor/server-ui/dist/assets/index-CESyyK8V.js +84 -0
  56. package/vendor/server-ui/dist/index.html +2 -2
  57. package/vendor/serverd/package.json +2 -2
  58. package/vendor/serverd/src/index.js +9 -0
  59. package/vendor/serverd/src/lib/agent-presence.js +106 -0
  60. package/vendor/serverd/src/lib/hook-pipelines.js +20 -4
  61. package/vendor/serverd/src/lib/migrations/state/0012_plugin_settings_and_presence.sql +62 -0
  62. package/vendor/serverd/src/lib/mtls.js +44 -4
  63. package/vendor/serverd/src/lib/plugin-hooks.js +120 -20
  64. package/vendor/serverd/src/lib/plugin-hosting.js +35 -14
  65. package/vendor/serverd/src/lib/plugin-lifecycle.js +267 -83
  66. package/vendor/serverd/src/lib/plugin-settings.js +1101 -0
  67. package/vendor/serverd/src/lib/plugins.js +73 -22
  68. package/vendor/serverd/src/lib/tunnel-hooks.js +11 -0
  69. package/vendor/serverd/src/routes/management/plugins.js +166 -19
  70. package/vendor/serverd/src/routes/management/tunnels.js +21 -1
  71. package/vendor/server-ui/dist/assets/index-BTlBt_cD.js +0 -84
  72. package/vendor/server-ui/dist/assets/index-Bc5NCMSv.css +0 -1
@@ -1,7 +1,7 @@
1
1
  # Lamaste Identity Directory — Design Document
2
2
 
3
3
  > **Status:** design, 2026-10-13. Nothing here is implemented yet.
4
- > **Package:** `@lamalibre/lamaste-identity@4.3.1` (completes the existing SDK).
4
+ > **Package:** `@lamalibre/lamaste-identity@4.4.0` (completes the existing SDK).
5
5
  > **Companions:** `gatekeeper-design.md` (authorization),
6
6
  > `plugin-development/design/agent-hosted-app-plugins.md` (app plugins).
7
7
 
@@ -178,7 +178,7 @@ and compares it with the local projection (by `userId` and `version`). It
178
178
  applies differences and logs how many it found — a non-zero count on a
179
179
  healthy system is a bug in the change feed and is reported to the panel.
180
180
 
181
- ## SDK (`@lamalibre/lamaste-identity@4.3.1`)
181
+ ## SDK (`@lamalibre/lamaste-identity@4.4.0`)
182
182
 
183
183
  Today's surface stays; three pieces are added.
184
184
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lamalibre/lamaste-docs",
3
- "version": "4.3.1",
3
+ "version": "4.4.0",
4
4
  "private": true,
5
5
  "description": "Lamaste documentation — markdown files served by the panel and published to GitHub Pages",
6
6
  "type": "module",
@@ -29,7 +29,7 @@ feria dev registry — OUT OF SCOPE, do not touch
29
29
 
30
30
  ### Naming Rules
31
31
 
32
- - **`lamaste`** is the core lib. You `import { ... } from '@lamalibre/lamaste@4.3.1'`. No `-lib` suffix.
32
+ - **`lamaste`** is the core lib. You `import { ... } from '@lamalibre/lamaste@4.4.0'`. No `-lib` suffix.
33
33
  - **`-d` suffix** for daemons — Unix convention (`httpd`, `sshd`, `mongod`). Instantly signals "long-running process".
34
34
  - **`-ui`** for React component libraries — universal term, avoids "serverd serves the panel" tautology.
35
35
  - **`create-*`** for all npx one-shot tools — the one npm convention everyone knows.
@@ -74,24 +74,24 @@ lamaste core library (types, constants, schemas, pl
74
74
 
75
75
  | # | Package (npm name) | Type | Depends on | Purpose |
76
76
  | --- | ----------------------------------- | ----------- | ---------- | ------------------------------------------------------------------------------------------------------------------- |
77
- | 1 | `@lamalibre/lamaste@4.3.1` | core lib | nothing | Types, constants, Zod schemas, plugin host Fastify plugin, atomic file helpers, client interfaces |
78
- | | | | | Subpath: `@lamalibre/lamaste@4.3.1/agent` — agent domain logic |
79
- | | | | | Subpath: `@lamalibre/lamaste@4.3.1/server` — server domain logic |
80
- | 2 | `@lamalibre/lamaste-agent@4.3.1` | CLI | `lamaste` | Thin agent CLI. No Fastify, no HTTP |
81
- | 3 | `@lamalibre/lamaste-agentd@4.3.1` | daemon | `lamaste` | Agent REST API on :9393. No CLI argument parsing |
82
- | 4 | `@lamalibre/lamaste-agent-ui@4.3.1` | UI lib | `lamaste` | Agent React components + browser SPA build. Used by desktop and agentd |
83
- | 5 | `@lamalibre/lamaste-server@4.3.1` | CLI | `lamaste` | **NEW.** Thin server CLI. No Fastify, no HTTP |
84
- | 6 | `@lamalibre/lamaste-serverd@4.3.1` | daemon | `lamaste` | Server REST API on :3100. No CLI argument parsing. Renamed from `serverd` |
85
- | 7 | `@lamalibre/lamaste-server-ui@4.3.1` | UI lib | `lamaste` | Server/admin React components + browser SPA build. Replaces both `panel-client` and `lamaste-admin-panel` |
86
- | 8 | `@lamalibre/lamaste@4.3.1-desktop` | desktop | `lamaste` | Unified Tauri app. Multi-target: full, agent-only, server-only. Credentials, tray, deep links |
87
- | 9 | `@lamalibre/lamaste-cloud@4.3.1` | lib + CLI | — | Cloud provider abstraction (already correct pattern) |
88
- | 10 | `@lamalibre/lamaste-tickets@4.3.1` | SDK | — | Agent-to-agent authorization |
89
- | 11 | `@lamalibre/lamaste-identity@4.3.1` | SDK | — | Authelia identity parsing and query |
90
- | 12 | `@lamalibre/create-lamaste@4.3.1` | provisioner | `lamaste` | Server provisioner: OS hardening, nginx, Authelia, certs. `npx create-lamaste` |
91
- | 13 | `@lamalibre/create-lamaste-agent@4.3.1` | provisioner | `lamaste` | Agent provisioner: cert enrollment, service setup. `npx create-lamaste-agent`. Renamed from `install-lamaste-agent` |
92
- | 14 | `@lamalibre/create-lamaste-desktop@4.3.1` | installer | — | Desktop app installer. `npx create-lamaste-desktop`. Renamed from `install-lamaste-desktop` |
93
- | 15 | `@lamalibre/create-lamaste-admin@4.3.1` | provisioner | `lamaste` | Admin cert upgrade to hardware-bound. `npx create-lamaste-admin`. Renamed from `install-lamaste-admin` |
94
- | 16 | `@lamalibre/create-lamaste-e2e@4.3.1` | test infra | — | E2E test MCP server. `npx create-lamaste-e2e`. Renamed from `install-lamaste-e2e-mcp` |
77
+ | 1 | `@lamalibre/lamaste@4.4.0` | core lib | nothing | Types, constants, Zod schemas, plugin host Fastify plugin, atomic file helpers, client interfaces |
78
+ | | | | | Subpath: `@lamalibre/lamaste@4.4.0/agent` — agent domain logic |
79
+ | | | | | Subpath: `@lamalibre/lamaste@4.4.0/server` — server domain logic |
80
+ | 2 | `@lamalibre/lamaste-agent@4.4.0` | CLI | `lamaste` | Thin agent CLI. No Fastify, no HTTP |
81
+ | 3 | `@lamalibre/lamaste-agentd@4.4.0` | daemon | `lamaste` | Agent REST API on :9393. No CLI argument parsing |
82
+ | 4 | `@lamalibre/lamaste-agent-ui@4.4.0` | UI lib | `lamaste` | Agent React components + browser SPA build. Used by desktop and agentd |
83
+ | 5 | `@lamalibre/lamaste-server@4.4.0` | CLI | `lamaste` | **NEW.** Thin server CLI. No Fastify, no HTTP |
84
+ | 6 | `@lamalibre/lamaste-serverd@4.4.0` | daemon | `lamaste` | Server REST API on :3100. No CLI argument parsing. Renamed from `serverd` |
85
+ | 7 | `@lamalibre/lamaste-server-ui@4.4.0` | UI lib | `lamaste` | Server/admin React components + browser SPA build. Replaces both `panel-client` and `lamaste-admin-panel` |
86
+ | 8 | `@lamalibre/lamaste@4.4.0-desktop` | desktop | `lamaste` | Unified Tauri app. Multi-target: full, agent-only, server-only. Credentials, tray, deep links |
87
+ | 9 | `@lamalibre/lamaste-cloud@4.4.0` | lib + CLI | — | Cloud provider abstraction (already correct pattern) |
88
+ | 10 | `@lamalibre/lamaste-tickets@4.4.0` | SDK | — | Agent-to-agent authorization |
89
+ | 11 | `@lamalibre/lamaste-identity@4.4.0` | SDK | — | Authelia identity parsing and query |
90
+ | 12 | `@lamalibre/create-lamaste@4.4.0` | provisioner | `lamaste` | Server provisioner: OS hardening, nginx, Authelia, certs. `npx create-lamaste` |
91
+ | 13 | `@lamalibre/create-lamaste-agent@4.4.0` | provisioner | `lamaste` | Agent provisioner: cert enrollment, service setup. `npx create-lamaste-agent`. Renamed from `install-lamaste-agent` |
92
+ | 14 | `@lamalibre/create-lamaste-desktop@4.4.0` | installer | — | Desktop app installer. `npx create-lamaste-desktop`. Renamed from `install-lamaste-desktop` |
93
+ | 15 | `@lamalibre/create-lamaste-admin@4.4.0` | provisioner | `lamaste` | Admin cert upgrade to hardware-bound. `npx create-lamaste-admin`. Renamed from `install-lamaste-admin` |
94
+ | 16 | `@lamalibre/create-lamaste-e2e@4.4.0` | test infra | — | E2E test MCP server. `npx create-lamaste-e2e`. Renamed from `install-lamaste-e2e-mcp` |
95
95
  | 17 | `@lamalibre/feria` | dev tool | — | Dev registry + release runner. **Out of scope — do not touch in this refactor** |
96
96
 
97
97
  ### Rename Map (1.x → 2.0.0)
@@ -116,7 +116,7 @@ The core library uses **subpath exports** to provide domain-specific entry point
116
116
 
117
117
  ```json
118
118
  {
119
- "name": "@lamalibre/lamaste@4.3.1",
119
+ "name": "@lamalibre/lamaste@4.4.0",
120
120
  "exports": {
121
121
  ".": "./dist/index.js",
122
122
  "./agent": "./dist/agent/index.js",
@@ -126,9 +126,9 @@ The core library uses **subpath exports** to provide domain-specific entry point
126
126
  ```
127
127
 
128
128
  ```typescript
129
- import { RESERVED_API_PREFIXES, pluginManifestSchema } from '@lamalibre/lamaste@4.3.1';
130
- import { loadRegistry, loadAgent, isAgentLoaded } from '@lamalibre/lamaste@4.3.1/agent';
131
- import { createTunnel, rotateCert } from '@lamalibre/lamaste@4.3.1/server';
129
+ import { RESERVED_API_PREFIXES, pluginManifestSchema } from '@lamalibre/lamaste@4.4.0';
130
+ import { loadRegistry, loadAgent, isAgentLoaded } from '@lamalibre/lamaste@4.4.0/agent';
131
+ import { createTunnel, rotateCert } from '@lamalibre/lamaste@4.4.0/server';
132
132
  ```
133
133
 
134
134
  **Why subpath exports instead of three packages (`lamaste-lib`, `lamaste-lib-agent`, `lamaste-lib-server`):**
@@ -149,7 +149,7 @@ import { createTunnel, rotateCert } from '@lamalibre/lamaste@4.3.1/server';
149
149
 
150
150
  | Layer | Agent side | Server side |
151
151
  | ------------------------ | ----------------------------------------------- | ---------------------------------------------- |
152
- | **Domain logic** | `@lamalibre/lamaste@4.3.1/agent` | `@lamalibre/lamaste@4.3.1/server` |
152
+ | **Domain logic** | `@lamalibre/lamaste@4.4.0/agent` | `@lamalibre/lamaste@4.4.0/server` |
153
153
  | **Operational CLI** | `lamaste-agent` | `lamaste-server` (new) |
154
154
  | **Long-running daemon** | `lamalibre-lamaste-agentd` on :9393 (extracted) | `lamalibre-lamaste-serverd` on :3100 (renamed) |
155
155
  | **UI components** | `lamaste-agent-ui` (renamed) | `lamaste-server-ui` (merged) |
@@ -471,7 +471,7 @@ The Rust backend has both `commands.rs` (legacy) and `agents.rs` (multi-agent).
471
471
 
472
472
  Create `packages/lamaste/` (TypeScript) with subpath exports:
473
473
 
474
- **Root (`@lamalibre/lamaste@4.3.1`):**
474
+ **Root (`@lamalibre/lamaste@4.4.0`):**
475
475
 
476
476
  - Types: `AdminClient`, `AgentClient` TypeScript interfaces, plugin manifest types, capability types
477
477
  - Constants: Reserved API prefixes, curated plugin list, capability names
@@ -479,7 +479,7 @@ Create `packages/lamaste/` (TypeScript) with subpath exports:
479
479
  - Plugin Host: Fastify plugin for plugin route mounting, bundle serving, disabled handler (unified from three routers)
480
480
  - File Helpers: Atomic write (temp → fsync → rename), promise-chain mutex
481
481
 
482
- **Agent subpath (`@lamalibre/lamaste@4.3.1/agent`):**
482
+ **Agent subpath (`@lamalibre/lamaste@4.4.0/agent`):**
483
483
 
484
484
  - Platform: Path helpers, platform detection (from `platform.js`)
485
485
  - Registry: Agent registry CRUD, label validation, legacy migration (from `registry.js`)
@@ -491,7 +491,7 @@ Create `packages/lamaste/` (TypeScript) with subpath exports:
491
491
  - Server Registry: servers.json and storage-servers.json CRUD (new — from Rust `cloud.rs`)
492
492
  - Mode: Server mode and admin cert file operations (new — from Rust `mode.rs`)
493
493
 
494
- **Server subpath (`@lamalibre/lamaste@4.3.1/server`):**
494
+ **Server subpath (`@lamalibre/lamaste@4.4.0/server`):**
495
495
 
496
496
  - Plugins: Server-side plugin lifecycle (uses shared schema from root)
497
497
  - Tunnels: Tunnel creation workflow with rollback (from `routes/tunnels.js`)
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lamalibre/lamaste-gatekeeper",
3
- "version": "4.3.1",
3
+ "version": "4.4.0",
4
4
  "description": "Authorization layer for Lamaste — groups, grants, and tunnel access control",
5
5
  "type": "module",
6
6
  "exports": {
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@fastify/rate-limit": "^10.3.0",
35
- "@lamalibre/lamaste": "^4.3.1",
35
+ "@lamalibre/lamaste": "^4.4.0",
36
36
  "fastify": "^5.3.3",
37
37
  "undici": "^7.8.0",
38
38
  "zod": "^3.24.4"
@@ -60,7 +60,7 @@ ${b('COMMANDS')}
60
60
  ${c('status')} Server health, uptime, services, certificate status
61
61
  ${c('logs')} View server log output (journalctl wrapper)
62
62
  ${c('restart')} Restart panel server and optionally gatekeeper
63
- ${c('plugins')} Manage plugins (list, install, enable, disable, uninstall, update, hosting, hooks, operations, …)
63
+ ${c('plugins')} Manage plugins (list, install, enable, disable, uninstall, update, hosting, hooks, settings, …)
64
64
  ${c('push-install')} Push install: on/off, default policy, open/close an agent's window
65
65
  ${c('audit')} The panel's audit log (approvals, hostings, updates, hook events)
66
66
  ${c('tunnels')} Manage tunnels (list, create, delete, toggle)
@@ -99,6 +99,9 @@ ${b('EXAMPLES')}
99
99
  ${d('# Install a plugin')}
100
100
  ${c('lamaste-server plugins install @lamalibre/herd-server')}
101
101
 
102
+ ${d("# Change an agent-hosted plugin's settings; secrets come on stdin, never as arguments")}
103
+ ${c('lamaste-server plugins configure myplugin --set retries=5 --secrets-stdin < secrets.json')}
104
+
102
105
  ${d("# Let the panel install an app plugin's agent half on agent vm1 for the next hour")}
103
106
  ${c('lamaste-server push-install on')}
104
107
  ${c('lamaste-server push-install open vm1 --minutes 60')}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lamalibre/lamaste-server",
3
- "version": "4.3.1",
3
+ "version": "4.4.0",
4
4
  "description": "Server operations CLI for Lamaste",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -17,7 +17,8 @@
17
17
  "test": "node --test test/*.test.js"
18
18
  },
19
19
  "dependencies": {
20
- "@lamalibre/lamaste": "^4.3.1",
20
+ "@clack/prompts": "^1.8.1",
21
+ "@lamalibre/lamaste": "^4.4.0",
21
22
  "chalk": "^5.3.0",
22
23
  "execa": "^9.0.0"
23
24
  },
@@ -27,6 +28,6 @@
27
28
  "directory": "packages/server/cli"
28
29
  },
29
30
  "engines": {
30
- "node": ">=20.0.0"
31
+ "node": ">=20.12.0"
31
32
  }
32
33
  }