@noodleseed/agent-kit 0.18.0 → 0.19.1

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/manifest.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
- "packageVersion": "0.18.0",
2
+ "packageVersion": "0.19.1",
3
3
  "files": [
4
4
  {
5
5
  "path": "skills/codex/SKILL.md",
6
- "sha256": "e1cdb0f5fcf165fbb759e78398c495b488ec0293ff8d8d6961aee964bffd064d",
6
+ "sha256": "076f93b1c9e1e2ac9b5efe4ae2d80e4aed9ecb75e0da9257f327085360d802f1",
7
7
  "agentTarget": "codex"
8
8
  },
9
9
  {
@@ -28,7 +28,7 @@
28
28
  },
29
29
  {
30
30
  "path": "skills/codex/references/authoring-workflow.md",
31
- "sha256": "23d0ced0b18aea19cf7714f744ea3ac2bbc4ff046b63e54440abb43182736717",
31
+ "sha256": "fd2a67d3ba67f640edddca6d30ed8d38f278f0f3e9ab1c1669ace2aef8797c01",
32
32
  "agentTarget": "codex"
33
33
  },
34
34
  {
@@ -43,7 +43,7 @@
43
43
  },
44
44
  {
45
45
  "path": "skills/codex/references/widgets-and-apps.md",
46
- "sha256": "5cb7142e25574150d9b8e9b1261d63f76ad56a8a0b5260dc24afe9e92cc6f454",
46
+ "sha256": "853125c2bd73fcb136c3237bc4aa08faeeba8b8cc0d1ef2d0a168d4e7623ec68",
47
47
  "agentTarget": "codex"
48
48
  },
49
49
  {
@@ -193,7 +193,7 @@
193
193
  },
194
194
  {
195
195
  "path": "skills/codex/examples/acme-tasks/README.md",
196
- "sha256": "ce9f7748d0258f70471f6f8d26771acde6f9025de54f90640f46a8219fba1359",
196
+ "sha256": "1d65cde8d1b47ade9e895ef99a92a0aec9d9ffe0c578f0d2dc4bafa0bcccca26",
197
197
  "agentTarget": "codex"
198
198
  },
199
199
  {
@@ -348,7 +348,7 @@
348
348
  },
349
349
  {
350
350
  "path": "skills/claude-code/SKILL.md",
351
- "sha256": "dcb8ef876ceb10b803ab653404789851ea58dbef06877f8e2920cf9ae08a3d94",
351
+ "sha256": "7b487e019e82c28ec2ef1f5ffcb54f8ea15e3b62ecaf10a9de7375a692a4d1f7",
352
352
  "agentTarget": "claude-code"
353
353
  },
354
354
  {
@@ -373,7 +373,7 @@
373
373
  },
374
374
  {
375
375
  "path": "skills/claude-code/references/authoring-workflow.md",
376
- "sha256": "23d0ced0b18aea19cf7714f744ea3ac2bbc4ff046b63e54440abb43182736717",
376
+ "sha256": "fd2a67d3ba67f640edddca6d30ed8d38f278f0f3e9ab1c1669ace2aef8797c01",
377
377
  "agentTarget": "claude-code"
378
378
  },
379
379
  {
@@ -388,7 +388,7 @@
388
388
  },
389
389
  {
390
390
  "path": "skills/claude-code/references/widgets-and-apps.md",
391
- "sha256": "5cb7142e25574150d9b8e9b1261d63f76ad56a8a0b5260dc24afe9e92cc6f454",
391
+ "sha256": "853125c2bd73fcb136c3237bc4aa08faeeba8b8cc0d1ef2d0a168d4e7623ec68",
392
392
  "agentTarget": "claude-code"
393
393
  },
394
394
  {
@@ -538,7 +538,7 @@
538
538
  },
539
539
  {
540
540
  "path": "skills/claude-code/examples/acme-tasks/README.md",
541
- "sha256": "ce9f7748d0258f70471f6f8d26771acde6f9025de54f90640f46a8219fba1359",
541
+ "sha256": "1d65cde8d1b47ade9e895ef99a92a0aec9d9ffe0c578f0d2dc4bafa0bcccca26",
542
542
  "agentTarget": "claude-code"
543
543
  },
544
544
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noodleseed/agent-kit",
3
- "version": "0.18.0",
3
+ "version": "0.19.1",
4
4
  "private": false,
5
5
  "description": "Self-checking, self-updating agent skills for the Noodle Seed CLI. Authored in this repo by @noodle-borg/agent-kit; this is the published, independently-versioned canonical skills artifact the CLI fetches and verifies.",
6
6
  "license": "Apache-2.0",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: noodle-seed
3
3
  description: Use when building, validating, testing, deploying, or operating a local or hosted Noodle Seed MCP server or app authored in TypeScript with the noodle CLI.
4
- version: 0.18.0
4
+ version: 0.19.1
5
5
  hash: b4952708b1c38f55
6
6
  ---
7
7
 
@@ -89,21 +89,21 @@ assistant: embeddedAssistant({
89
89
  apiKey: secret('ASSISTANT_MODEL_API_KEY'),
90
90
  }),
91
91
  allowedOrigins: ['https://tasks.example.com'],
92
- appearance: {
93
- brand: { name: 'Acme Tasks Assistant' },
94
- theme: {
95
- defaultMode: 'auto',
96
- light: { accent: '#3157D5' },
97
- dark: { accent: '#9FB4FF' },
98
- },
99
- },
92
+ layout: { mode: 'floating', position: 'bottom-right' },
93
+ labels: { welcomeHeading: 'How can I help with Acme Tasks?' },
100
94
  }),
101
95
  ```
102
96
 
97
+ The assistant automatically inherits this server's existing `branding` block, so its name, accent,
98
+ light/dark surfaces, density, and radius match the `TaskList` widget without a second brand declaration.
99
+
103
100
  The customer backend exchanges its authenticated user through `@noodleseed/assistant/server`; the browser
104
101
  uses the Web Component or React wrapper and never receives the embed client or model secret. Validate with
105
102
  `noodle check --target embedded-assistant`, then create the backend credential with
106
103
  `noodle assistant clients create` after deployment.
107
104
 
105
+ Install the independently versioned embed SDK in the customer web application with
106
+ `pnpm add @noodleseed/assistant`.
107
+
108
108
  This example has no connector secrets and does not include tokens, caller-key mechanisms, or
109
109
  `.env.noodle` values. All tasks are fictional seed data.
@@ -200,7 +200,7 @@ Author managed config as `secret("NAME")` / `variable("NAME")` and operate it wi
200
200
 
201
201
  ## Embedded assistant
202
202
 
203
- To place the same server tools inside the SaaS web app, add `assistant: embeddedAssistant({ model: openAICompatible({ baseUrl: variable("ASSISTANT_MODEL_BASE_URL"), model: variable("ASSISTANT_MODEL"), apiKey: secret("ASSISTANT_MODEL_API_KEY") }), allowedOrigins: ["https://app.example.com"], appearance: { brand: { name: "Acme Assistant" }, theme: { defaultMode: "auto", light: { accent: "#3157D5" }, dark: { accent: "#9FB4FF" } } } })` to the server options. Keep origins exact. The customer backend uses `@noodleseed/assistant/server` to exchange its already-authenticated user for a short-lived browser session; client and model secrets never enter the browser. Run `noodle check --target embedded-assistant` before deploy, then manage backend credentials with `noodle assistant clients create|list|rotate|revoke`.
203
+ To place the same server tools inside the SaaS web app, declare the shared identity once with `branding: { name: "Acme", accent: "#3157D5", surface: "#FFFFFF", surfaceDark: "#161B26", theme: { dark: { accent: "#9FB4FF" } } }`, then add `assistant: embeddedAssistant({ model: openAICompatible({ baseUrl: variable("ASSISTANT_MODEL_BASE_URL"), model: variable("ASSISTANT_MODEL"), apiKey: secret("ASSISTANT_MODEL_API_KEY") }), allowedOrigins: ["https://app.example.com"], layout: { mode: "floating", position: "bottom-right" } })`. Widgets and the embed inherit the same brand kit. Keep origins exact. Install the independently versioned embed SDK with `pnpm add @noodleseed/assistant`; the customer backend uses its `/server` export to exchange the already-authenticated user for a short-lived browser session, while the browser uses the package root or `/react` export. Client and model secrets never enter the browser. Run `noodle check --target embedded-assistant` before deploy, then manage backend credentials with `noodle assistant clients create|list|rotate|revoke`.
204
204
 
205
205
  ## Boundaries
206
206
 
@@ -24,6 +24,7 @@ Author views as React components. `generateHelpers<ServerDefinition>()` (from `@
24
24
  | `useCallTool` | Call a tool from the widget — returns `{ status, callTool, callToolAsync, data, structuredContent, error, reset }`; target a model-visible tool or a hidden `tool` helper. |
25
25
  | `useViewState` | Persist per-widget UI state across re-renders and restores: `const [value, setValue] = useViewState("key", initial)`. |
26
26
  | `useLayout` | Read host layout: `{ theme, displayMode, locale?, host?, supports? }` (`displayMode` is `"inline"`/`"pip"`/`"fullscreen"`) — adapt styling to the host theme and mode. |
27
+ | `useBranding` | Read the server-level brand name and themed logo/mark/avatar URLs when widget content needs identity assets; CSS tokens are applied automatically. |
27
28
  | `useRequestDisplayMode` | Request a host-mediated layout change such as fullscreen; treat it as best-effort and keep inline rendering useful. |
28
29
  | `useOpenExternal` | Open an external link through the host (never `window.open`); the target origin must be listed in the server-level `handoff.allowedDomains`. |
29
30
  | `useSendFollowUpMessage` | Send a follow-up prompt to the model from a user interaction: `send({ prompt })` — trigger only from an explicit user action. |
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: noodle-seed
3
3
  description: Use when building, validating, testing, deploying, or operating a local or hosted Noodle Seed MCP server or app authored in TypeScript with the noodle CLI.
4
- version: 0.18.0
4
+ version: 0.19.1
5
5
  hash: 39c6a606c728d164
6
6
  ---
7
7
 
@@ -89,21 +89,21 @@ assistant: embeddedAssistant({
89
89
  apiKey: secret('ASSISTANT_MODEL_API_KEY'),
90
90
  }),
91
91
  allowedOrigins: ['https://tasks.example.com'],
92
- appearance: {
93
- brand: { name: 'Acme Tasks Assistant' },
94
- theme: {
95
- defaultMode: 'auto',
96
- light: { accent: '#3157D5' },
97
- dark: { accent: '#9FB4FF' },
98
- },
99
- },
92
+ layout: { mode: 'floating', position: 'bottom-right' },
93
+ labels: { welcomeHeading: 'How can I help with Acme Tasks?' },
100
94
  }),
101
95
  ```
102
96
 
97
+ The assistant automatically inherits this server's existing `branding` block, so its name, accent,
98
+ light/dark surfaces, density, and radius match the `TaskList` widget without a second brand declaration.
99
+
103
100
  The customer backend exchanges its authenticated user through `@noodleseed/assistant/server`; the browser
104
101
  uses the Web Component or React wrapper and never receives the embed client or model secret. Validate with
105
102
  `noodle check --target embedded-assistant`, then create the backend credential with
106
103
  `noodle assistant clients create` after deployment.
107
104
 
105
+ Install the independently versioned embed SDK in the customer web application with
106
+ `pnpm add @noodleseed/assistant`.
107
+
108
108
  This example has no connector secrets and does not include tokens, caller-key mechanisms, or
109
109
  `.env.noodle` values. All tasks are fictional seed data.
@@ -200,7 +200,7 @@ Author managed config as `secret("NAME")` / `variable("NAME")` and operate it wi
200
200
 
201
201
  ## Embedded assistant
202
202
 
203
- To place the same server tools inside the SaaS web app, add `assistant: embeddedAssistant({ model: openAICompatible({ baseUrl: variable("ASSISTANT_MODEL_BASE_URL"), model: variable("ASSISTANT_MODEL"), apiKey: secret("ASSISTANT_MODEL_API_KEY") }), allowedOrigins: ["https://app.example.com"], appearance: { brand: { name: "Acme Assistant" }, theme: { defaultMode: "auto", light: { accent: "#3157D5" }, dark: { accent: "#9FB4FF" } } } })` to the server options. Keep origins exact. The customer backend uses `@noodleseed/assistant/server` to exchange its already-authenticated user for a short-lived browser session; client and model secrets never enter the browser. Run `noodle check --target embedded-assistant` before deploy, then manage backend credentials with `noodle assistant clients create|list|rotate|revoke`.
203
+ To place the same server tools inside the SaaS web app, declare the shared identity once with `branding: { name: "Acme", accent: "#3157D5", surface: "#FFFFFF", surfaceDark: "#161B26", theme: { dark: { accent: "#9FB4FF" } } }`, then add `assistant: embeddedAssistant({ model: openAICompatible({ baseUrl: variable("ASSISTANT_MODEL_BASE_URL"), model: variable("ASSISTANT_MODEL"), apiKey: secret("ASSISTANT_MODEL_API_KEY") }), allowedOrigins: ["https://app.example.com"], layout: { mode: "floating", position: "bottom-right" } })`. Widgets and the embed inherit the same brand kit. Keep origins exact. Install the independently versioned embed SDK with `pnpm add @noodleseed/assistant`; the customer backend uses its `/server` export to exchange the already-authenticated user for a short-lived browser session, while the browser uses the package root or `/react` export. Client and model secrets never enter the browser. Run `noodle check --target embedded-assistant` before deploy, then manage backend credentials with `noodle assistant clients create|list|rotate|revoke`.
204
204
 
205
205
  ## Boundaries
206
206
 
@@ -24,6 +24,7 @@ Author views as React components. `generateHelpers<ServerDefinition>()` (from `@
24
24
  | `useCallTool` | Call a tool from the widget — returns `{ status, callTool, callToolAsync, data, structuredContent, error, reset }`; target a model-visible tool or a hidden `tool` helper. |
25
25
  | `useViewState` | Persist per-widget UI state across re-renders and restores: `const [value, setValue] = useViewState("key", initial)`. |
26
26
  | `useLayout` | Read host layout: `{ theme, displayMode, locale?, host?, supports? }` (`displayMode` is `"inline"`/`"pip"`/`"fullscreen"`) — adapt styling to the host theme and mode. |
27
+ | `useBranding` | Read the server-level brand name and themed logo/mark/avatar URLs when widget content needs identity assets; CSS tokens are applied automatically. |
27
28
  | `useRequestDisplayMode` | Request a host-mediated layout change such as fullscreen; treat it as best-effort and keep inline rendering useful. |
28
29
  | `useOpenExternal` | Open an external link through the host (never `window.open`); the target origin must be listed in the server-level `handoff.allowedDomains`. |
29
30
  | `useSendFollowUpMessage` | Send a follow-up prompt to the model from a user interaction: `send({ prompt })` — trigger only from an explicit user action. |