@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 +9 -9
- package/package.json +1 -1
- package/skills/claude-code/SKILL.md +1 -1
- package/skills/claude-code/examples/acme-tasks/README.md +8 -8
- package/skills/claude-code/references/authoring-workflow.md +1 -1
- package/skills/claude-code/references/widgets-and-apps.md +1 -0
- package/skills/codex/SKILL.md +1 -1
- package/skills/codex/examples/acme-tasks/README.md +8 -8
- package/skills/codex/references/authoring-workflow.md +1 -1
- package/skills/codex/references/widgets-and-apps.md +1 -0
package/manifest.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"packageVersion": "0.
|
|
2
|
+
"packageVersion": "0.19.1",
|
|
3
3
|
"files": [
|
|
4
4
|
{
|
|
5
5
|
"path": "skills/codex/SKILL.md",
|
|
6
|
-
"sha256": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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.
|
|
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",
|
|
@@ -89,21 +89,21 @@ assistant: embeddedAssistant({
|
|
|
89
89
|
apiKey: secret('ASSISTANT_MODEL_API_KEY'),
|
|
90
90
|
}),
|
|
91
91
|
allowedOrigins: ['https://tasks.example.com'],
|
|
92
|
-
|
|
93
|
-
|
|
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"],
|
|
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. |
|
package/skills/codex/SKILL.md
CHANGED
|
@@ -89,21 +89,21 @@ assistant: embeddedAssistant({
|
|
|
89
89
|
apiKey: secret('ASSISTANT_MODEL_API_KEY'),
|
|
90
90
|
}),
|
|
91
91
|
allowedOrigins: ['https://tasks.example.com'],
|
|
92
|
-
|
|
93
|
-
|
|
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"],
|
|
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. |
|