@noodleseed/one 0.20.1 → 0.21.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.
- package/dist/agents.d.ts +12 -0
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +36 -3
- package/dist/agents.js.map +1 -1
- package/dist/commands/analytics-ops.d.ts.map +1 -1
- package/dist/commands/analytics-ops.js +5 -3
- package/dist/commands/analytics-ops.js.map +1 -1
- package/dist/commands/author-loop.d.ts.map +1 -1
- package/dist/commands/author-loop.js +58 -21
- package/dist/commands/author-loop.js.map +1 -1
- package/dist/commands/catalog-data-core.d.ts.map +1 -1
- package/dist/commands/catalog-data-core.js +15 -3
- package/dist/commands/catalog-data-core.js.map +1 -1
- package/dist/commands/deploy-ops.d.ts +6 -0
- package/dist/commands/deploy-ops.d.ts.map +1 -1
- package/dist/commands/deploy-ops.js +108 -38
- package/dist/commands/deploy-ops.js.map +1 -1
- package/dist/commands/mcp-apps.d.ts.map +1 -1
- package/dist/commands/mcp-apps.js +31 -7
- package/dist/commands/mcp-apps.js.map +1 -1
- package/dist/commands/output.d.ts +52 -0
- package/dist/commands/output.d.ts.map +1 -1
- package/dist/commands/output.js +12 -0
- package/dist/commands/output.js.map +1 -1
- package/dist/commands/project-setup.d.ts.map +1 -1
- package/dist/commands/project-setup.js +35 -4
- package/dist/commands/project-setup.js.map +1 -1
- package/dist/commands/update-ops.d.ts.map +1 -1
- package/dist/commands/update-ops.js +11 -1
- package/dist/commands/update-ops.js.map +1 -1
- package/dist/first-run.d.ts.map +1 -1
- package/dist/first-run.js +57 -29
- package/dist/first-run.js.map +1 -1
- package/dist/project.js +17 -1
- package/dist/project.js.map +1 -1
- package/dist/react.d.ts +2 -2
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +1 -1
- package/dist/react.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js +3 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/hook-notes.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +3 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/index.js +17 -11
- package/node_modules/@noodle-borg/agent-kit/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +225 -26
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +217 -52
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +20 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -2
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.js +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react/app-flow.d.ts +33 -0
- package/node_modules/@noodle-borg/authoring/dist/react/app-flow.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/app-flow.js +93 -0
- package/node_modules/@noodle-borg/authoring/dist/react/app-flow.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts +33 -0
- package/node_modules/@noodle-borg/authoring/dist/react/bridge.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/bridge.js +75 -0
- package/node_modules/@noodle-borg/authoring/dist/react/bridge.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts +5165 -0
- package/node_modules/@noodle-borg/authoring/dist/react/components.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/components.js +129 -0
- package/node_modules/@noodle-borg/authoring/dist/react/components.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/handoff.d.ts +12 -0
- package/node_modules/@noodle-borg/authoring/dist/react/handoff.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/handoff.js +54 -0
- package/node_modules/@noodle-borg/authoring/dist/react/handoff.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts +45 -0
- package/node_modules/@noodle-borg/authoring/dist/react/hooks.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/hooks.js +114 -0
- package/node_modules/@noodle-borg/authoring/dist/react/hooks.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts +11 -0
- package/node_modules/@noodle-borg/authoring/dist/react/index.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/index.js +6 -0
- package/node_modules/@noodle-borg/authoring/dist/react/index.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/store.d.ts +9 -0
- package/node_modules/@noodle-borg/authoring/dist/react/store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react/store.js +25 -0
- package/node_modules/@noodle-borg/authoring/dist/react/store.js.map +1 -0
- package/node_modules/@noodle-borg/authoring/dist/react.d.ts +2 -28
- package/node_modules/@noodle-borg/authoring/dist/react.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/react.js +1 -152
- package/node_modules/@noodle-borg/authoring/dist/react.js.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/compile.js +23 -8
- package/node_modules/@noodle-borg/connector-defs/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +8 -4
- package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/schema.js +3 -3
- package/node_modules/@noodle-borg/connector-defs/dist/schema.js.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/variables.d.ts +1 -0
- package/node_modules/@noodle-borg/connector-defs/dist/variables.d.ts.map +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/variables.js +1 -1
- package/node_modules/@noodle-borg/connector-defs/dist/variables.js.map +1 -1
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +3 -2
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
- package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
- package/package.json +2 -2
package/dist/react.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { generateHelpers } from '@noodle-borg/authoring';
|
|
1
|
+
export { ActionBar, AppShell, AsyncBoundary, ChoiceGroup, createViewStore, DataCard, DataList, EmptyState, ErrorState, Field, generateHelpers, HandoffButton, LoadingState, Overlay, QuantityStepper, ShellHeader, ShellNav, StatusBadge, SubmitButton, useAppFlow, useCallTool, useHandoff, useLayout, useOpenExternal, useSendFollowUpMessage, useToolInfo, useViewState, View, ViewStack, } from '@noodle-borg/authoring';
|
|
2
2
|
//# sourceMappingURL=react.js.map
|
package/dist/react.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"react.js","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,SAAS,EACT,QAAQ,EACR,aAAa,EACb,WAAW,EACX,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,KAAK,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,OAAO,EACP,eAAe,EACf,WAAW,EACX,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,WAAW,EACX,YAAY,EACZ,IAAI,EACJ,SAAS,GACV,MAAM,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-notes.d.ts","sourceRoot":"","sources":["../../src/curated/hook-notes.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"hook-notes.d.ts","sourceRoot":"","sources":["../../src/curated/hook-notes.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiB7C,CAAC"}
|
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
// ship without skill guidance. Keep each note one line and third-person.
|
|
7
7
|
export const HOOK_NOTES = {
|
|
8
8
|
useToolInfo: 'Read the invoking tool result; `structuredContent` is the widget’s typed data payload.',
|
|
9
|
-
useCallTool: 'Call a tool from the widget — returns `{ callTool, data, error,
|
|
9
|
+
useCallTool: 'Call a tool from the widget — returns `{ status, callTool, callToolAsync, data, structuredContent, error, reset }`; target a model-visible tool or a hidden `toolForWidget` helper.',
|
|
10
10
|
useViewState: 'Persist per-widget UI state across re-renders and restores: `const [value, setValue] = useViewState("key", initial)`.',
|
|
11
|
+
useAppFlow: 'Manage named widget views with persisted params and back-stack state: `const flow = useAppFlow({ initialView, views })`.',
|
|
12
|
+
useHandoff: 'Open server-created HTTP(S) handoff URLs through the host with status/error state; domain policy still comes from `handoff.allowedDomains`.',
|
|
11
13
|
useLayout: 'Read host layout: `{ theme, displayMode, locale? }` (`theme` is `"light"`/`"dark"`, `displayMode` is `"inline"`/`"fullscreen"`) — adapt styling to the host theme and mode.',
|
|
12
14
|
useOpenExternal: 'Open an external link through the host (never `window.open`); the target origin must be listed in the server-level `handoff.allowedDomains`.',
|
|
13
15
|
useSendFollowUpMessage: 'Send a follow-up prompt to the model from a user interaction: `send({ prompt })` — trigger only from an explicit user action.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-notes.js","sourceRoot":"","sources":["../../src/curated/hook-notes.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,EAAE;AACF,mGAAmG;AACnG,gGAAgG;AAChG,iGAAiG;AACjG,yEAAyE;AAEzE,MAAM,CAAC,MAAM,UAAU,GAA2B;IAChD,WAAW,EACT,wFAAwF;IAC1F,WAAW,EACT
|
|
1
|
+
{"version":3,"file":"hook-notes.js","sourceRoot":"","sources":["../../src/curated/hook-notes.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,EAAE;AACF,mGAAmG;AACnG,gGAAgG;AAChG,iGAAiG;AACjG,yEAAyE;AAEzE,MAAM,CAAC,MAAM,UAAU,GAA2B;IAChD,WAAW,EACT,wFAAwF;IAC1F,WAAW,EACT,qLAAqL;IACvL,YAAY,EACV,uHAAuH;IACzH,UAAU,EACR,0HAA0H;IAC5H,UAAU,EACR,6IAA6I;IAC/I,SAAS,EACP,6KAA6K;IAC/K,eAAe,EACb,8IAA8I;IAChJ,sBAAsB,EACpB,+HAA+H;CAClI,CAAC"}
|
|
@@ -4,6 +4,6 @@ export declare const CLI_COMMANDS: readonly string[];
|
|
|
4
4
|
export declare const SDK_EXPORTS: readonly string[];
|
|
5
5
|
/** Every compiler `CompileErrorCode`, in source order (from packages/compiler/src/errors.ts). */
|
|
6
6
|
export declare const COMPILE_ERROR_CODES: readonly string[];
|
|
7
|
-
/** Widget React hooks from `generateHelpers<AppType>()` (packages/authoring/src/react.ts). */
|
|
7
|
+
/** Widget React hooks from `generateHelpers<AppType>()` (packages/authoring/src/react/hooks.ts). */
|
|
8
8
|
export declare const REACT_HOOKS: readonly string[];
|
|
9
9
|
//# sourceMappingURL=surface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../../src/generated/surface.ts"],"names":[],"mappings":"AAIA,8FAA8F;AAC9F,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAsDzC,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAiBxC,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAwChD,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../../src/generated/surface.ts"],"names":[],"mappings":"AAIA,8FAA8F;AAC9F,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAsDzC,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAiBxC,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAwChD,CAAC;AAEF,oGAAoG;AACpG,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EASxC,CAAC"}
|
|
@@ -118,7 +118,7 @@ export const COMPILE_ERROR_CODES = [
|
|
|
118
118
|
'unused_connector_alias',
|
|
119
119
|
'arg_mismatch',
|
|
120
120
|
];
|
|
121
|
-
/** Widget React hooks from `generateHelpers<AppType>()` (packages/authoring/src/react.ts). */
|
|
121
|
+
/** Widget React hooks from `generateHelpers<AppType>()` (packages/authoring/src/react/hooks.ts). */
|
|
122
122
|
export const REACT_HOOKS = [
|
|
123
123
|
'useToolInfo',
|
|
124
124
|
'useCallTool',
|
|
@@ -126,5 +126,7 @@ export const REACT_HOOKS = [
|
|
|
126
126
|
'useLayout',
|
|
127
127
|
'useOpenExternal',
|
|
128
128
|
'useSendFollowUpMessage',
|
|
129
|
+
'useAppFlow',
|
|
130
|
+
'useHandoff',
|
|
129
131
|
];
|
|
130
132
|
//# sourceMappingURL=surface.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../src/generated/surface.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,iGAAiG;AAEjG,8FAA8F;AAC9F,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,MAAM;IACN,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,WAAW;IACX,SAAS;IACT,KAAK;IACL,UAAU;IACV,OAAO;IACP,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,UAAU;IACV,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,MAAM;IACN,aAAa;IACb,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,SAAS;IACT,WAAW;CACZ,CAAC;AAEF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,aAAa;IACb,OAAO;IACP,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,eAAe;IACf,gBAAgB;IAChB,UAAU;IACV,MAAM;IACN,QAAQ;IACR,GAAG;CACJ,CAAC;AAEF,iGAAiG;AACjG,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,8BAA8B;IAC9B,uBAAuB;IACvB,cAAc;IACd,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,2BAA2B;IAC3B,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,wBAAwB;IACxB,0BAA0B;IAC1B,kBAAkB;IAClB,qBAAqB;IACrB,4BAA4B;IAC5B,uBAAuB;IACvB,wBAAwB;IACxB,6BAA6B;IAC7B,eAAe;IACf,gCAAgC;IAChC,oBAAoB;IACpB,yBAAyB;IACzB,0BAA0B;IAC1B,mBAAmB;IACnB,wBAAwB;IACxB,cAAc;CACf,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../src/generated/surface.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,iGAAiG;AAEjG,8FAA8F;AAC9F,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,MAAM;IACN,SAAS;IACT,UAAU;IACV,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,OAAO;IACP,MAAM;IACN,OAAO;IACP,WAAW;IACX,SAAS;IACT,KAAK;IACL,UAAU;IACV,OAAO;IACP,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,SAAS;IACT,OAAO;IACP,UAAU;IACV,SAAS;IACT,SAAS;IACT,QAAQ;IACR,MAAM;IACN,MAAM;IACN,aAAa;IACb,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,SAAS;IACT,WAAW;CACZ,CAAC;AAEF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,aAAa;IACb,OAAO;IACP,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,eAAe;IACf,gBAAgB;IAChB,UAAU;IACV,MAAM;IACN,QAAQ;IACR,GAAG;CACJ,CAAC;AAEF,iGAAiG;AACjG,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,8BAA8B;IAC9B,uBAAuB;IACvB,cAAc;IACd,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,mBAAmB;IACnB,uBAAuB;IACvB,2BAA2B;IAC3B,qBAAqB;IACrB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,wBAAwB;IACxB,0BAA0B;IAC1B,kBAAkB;IAClB,qBAAqB;IACrB,4BAA4B;IAC5B,uBAAuB;IACvB,wBAAwB;IACxB,6BAA6B;IAC7B,eAAe;IACf,gCAAgC;IAChC,oBAAoB;IACpB,yBAAyB;IACzB,0BAA0B;IAC1B,mBAAmB;IACnB,wBAAwB;IACxB,cAAc;CACf,CAAC;AAEF,oGAAoG;AACpG,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,aAAa;IACb,aAAa;IACb,cAAc;IACd,WAAW;IACX,iBAAiB;IACjB,wBAAwB;IACxB,YAAY;IACZ,YAAY;CACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB,EAAE,MAAoB,CAAC;AACrD,eAAO,MAAM,aAAa,wCAAwC,CAAC;AACnE,eAAO,MAAM,WAAW,sCAAsC,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;AAClD,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;AAEhE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,CAAC;CACnD;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,yFAAyF;AACzF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,2BAA2B,GAAG,0BAA0B,CAAC;CAC5E;AA2BD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,WAAW,EAAE,GAAG,SAAS,CAM/F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CACzC,GAAG,SAAS,gBAAgB,EAAE,CAwB9B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CACzC,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -67,19 +67,25 @@ export function renderManagedBlock(input) {
|
|
|
67
67
|
'',
|
|
68
68
|
`Agent target: ${input.target === 'codex' ? 'Codex' : 'Claude Code'}.`,
|
|
69
69
|
'',
|
|
70
|
-
'Build this project as a Noodle Seed MCP server or app authored in TypeScript.',
|
|
70
|
+
'Build this project as a Noodle Seed MCP server or app authored in TypeScript. This is an agent-native CLI: every command speaks `--json`, so drive the loop below by parsing machine state — not by reading source or scraping human prose.',
|
|
71
71
|
'',
|
|
72
|
-
'##
|
|
72
|
+
'## Agent-native loop',
|
|
73
|
+
'',
|
|
74
|
+
"- Discover: `noodle commands --json` — every command, flag, and exit code (don't read source).",
|
|
75
|
+
'- Author: edit `src/server.ts` — follow the capability recipe in the `noodle-seed` skill.',
|
|
76
|
+
'- Validate: `noodle validate --json` → on failure `{ok:false,error:{code,message,fix,next,errors:[{code,path,message}]}}`; per-field detail is in `error.errors[]`.',
|
|
77
|
+
'- Repair: fix each `error.errors[]` entry at its `path`, re-run validate; `noodle validate --fix-prompt` gives ready repair prose. Never freeform re-edit.',
|
|
78
|
+
'- Smoke: `noodle test --json`.',
|
|
79
|
+
'- Apps/widgets: `noodle check --json` (add `--target chatgpt|claude`) then `noodle devtools`.',
|
|
80
|
+
'- Deploy: `noodle deploy` (auth fails clean → `error.next` = `noodle login`).',
|
|
81
|
+
'- Wire into a host: `noodle connect <codex|claude-code|chatgpt>`.',
|
|
82
|
+
'- Health: `noodle metrics --agent-output`.',
|
|
83
|
+
'- Stale skill? `noodle agents doctor --json` → `noodle agents setup --write`.',
|
|
84
|
+
'',
|
|
85
|
+
'The exact `--json`/exit-code contract is in the `noodle-seed` skill and its `references/agent-contract.md`. Human-oriented command prose lives in the project README, not here.',
|
|
86
|
+
'',
|
|
87
|
+
'## Safety',
|
|
73
88
|
'',
|
|
74
|
-
'- Edit `server.ts` or another configured TypeScript entrypoint.',
|
|
75
|
-
'- Use `server`, `tool`, `toolWithWidget`, `toolForWidget`, `resource`, `prompt`, `widget`, `connector`, `customerAuth`, `secret`, `variable`, `annotations`, `asset`, `handoffSession`, `when`, and `z` from `@noodleseed/one` (see the `noodle-seed` skill for the full surface).',
|
|
76
|
-
'- Write or update focused tests before behavior changes.',
|
|
77
|
-
'- Run `noodle validate` for compile/schema checks and `noodle test` for a local MCP smoke.',
|
|
78
|
-
'- Run `noodle dev` for the local loopback server, `noodle check` for widget readiness, and `noodle devtools` for widget preview.',
|
|
79
|
-
'- Deploy with `noodle deploy` after `noodle login` and `noodle link` when hosted deployment is needed.',
|
|
80
|
-
'- Manage local secrets with `noodle secrets set` and variables with `noodle variables set`.',
|
|
81
|
-
'- Input paths: scrape a provided website URL for surface hints, `noodle import openapi <file>` for spec-driven starter code, and run user interviews for custom APIs, eligibility rules, and private schemas.',
|
|
82
|
-
'- Repair against `noodle validate` errors: fix the specific errors cited, then re-validate — do not freeform re-edit.',
|
|
83
89
|
'- Keep secrets, bearer tokens, refresh tokens, static access keys, `.env.noodle` values, and `~/.noodle/config.json` out of prompts, logs, docs, tests, and generated files.',
|
|
84
90
|
'- Do not hand-author manifest JSON or YAML, runtime artifact JSON, connector IR, or hosted asset metadata.',
|
|
85
91
|
'- Do not add static data-plane credential paths; hosted access is identity-based.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-authoring-refs.d.ts","sourceRoot":"","sources":["../src/skill-authoring-refs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-authoring-refs.d.ts","sourceRoot":"","sources":["../src/skill-authoring-refs.ts"],"names":[],"mappings":"AAeA,wBAAgB,gCAAgC,IAAI,MAAM,CAgKzD;AAWD,wBAAgB,6BAA6B,IAAI,MAAM,CA4MtD;AA4BD,wBAAgB,uBAAuB,IAAI,MAAM,CA0BhD"}
|
|
@@ -6,6 +6,10 @@ import { REACT_HOOKS } from './generated/surface.js';
|
|
|
6
6
|
import { mdTable } from './md.js';
|
|
7
7
|
// ----------------------------------------------------------------------------
|
|
8
8
|
// references/authoring-workflow.md (CURATED)
|
|
9
|
+
//
|
|
10
|
+
// The `export default server(` worked example below is compile-verified on every `pnpm test` via
|
|
11
|
+
// scripts/verify-skill-snippets.mjs (the real `noodle validate`, not raw `tsc`). The other connector
|
|
12
|
+
// fragments are illustrative operation-mapping shapes (skipped by the gate as non-full-server).
|
|
9
13
|
// ----------------------------------------------------------------------------
|
|
10
14
|
export function renderAuthoringWorkflowReference() {
|
|
11
15
|
return [
|
|
@@ -18,6 +22,7 @@ export function renderAuthoringWorkflowReference() {
|
|
|
18
22
|
'- Repair loop',
|
|
19
23
|
'- Connectors',
|
|
20
24
|
'- HTTP connector example',
|
|
25
|
+
'- Worked example (full server)',
|
|
21
26
|
'- Compute connector example',
|
|
22
27
|
'- Tests',
|
|
23
28
|
'- Secrets and variables',
|
|
@@ -50,6 +55,8 @@ export function renderAuthoringWorkflowReference() {
|
|
|
50
55
|
'',
|
|
51
56
|
'## HTTP connector example',
|
|
52
57
|
'',
|
|
58
|
+
'The operation mapping in detail: `request` templates the outbound call, `response` maps the HTTP body into your typed `output`.',
|
|
59
|
+
'',
|
|
53
60
|
'```ts',
|
|
54
61
|
"import { connector, secret, variable } from '@noodleseed/one';",
|
|
55
62
|
'',
|
|
@@ -82,6 +89,46 @@ export function renderAuthoringWorkflowReference() {
|
|
|
82
89
|
'',
|
|
83
90
|
'Use `${args.field}` for tool/operation inputs and `${response.body.path}` for response mapping. Prefer explicit `allowedOrigins`; OAuth token/session URLs must also be on an allowed origin. For client credentials use `{ kind: "oauth2ClientCredentials", tokenUrl, clientId, clientSecret, scopes? }`; for per-customer downstream calls use `delegatedOAuth` or `delegatedSessionCookie` with a matching `customerAuth` server option.',
|
|
84
91
|
'',
|
|
92
|
+
'## Worked example (full server)',
|
|
93
|
+
'',
|
|
94
|
+
'Declare the API as data, bind it with `use`, then record a call in a tool. `auth` reads a managed `secret(...)` — never inline a key. Map the HTTP body into your typed `output` with `${response...}`.',
|
|
95
|
+
'',
|
|
96
|
+
'```ts',
|
|
97
|
+
"import { connector, secret, server, tool, z } from '@noodleseed/one';",
|
|
98
|
+
'',
|
|
99
|
+
"const crm = connector('acme_crm')",
|
|
100
|
+
" .version('1.0.0')",
|
|
101
|
+
' .http({',
|
|
102
|
+
" baseUrl: 'https://api.acme.example',",
|
|
103
|
+
" allowedOrigins: ['https://api.acme.example'],",
|
|
104
|
+
" auth: { kind: 'apiKey', header: 'X-Api-Key', secret: secret('ACME_CRM_TOKEN') },",
|
|
105
|
+
' operations: {',
|
|
106
|
+
' get_ticket: {',
|
|
107
|
+
" type: 'read',",
|
|
108
|
+
" method: 'GET',",
|
|
109
|
+
" path: '/v1/tickets/{id}',",
|
|
110
|
+
" input: { id: { type: 'string', required: true } },",
|
|
111
|
+
" output: { subject: { type: 'string' }, status: { type: 'string' } },",
|
|
112
|
+
" response: { subject: '${response.data.subject}', status: '${response.data.state}' },",
|
|
113
|
+
' },',
|
|
114
|
+
' },',
|
|
115
|
+
' });',
|
|
116
|
+
'',
|
|
117
|
+
"export default server('support', { title: 'Support', version: '1.0.0', use: { crm } }, [",
|
|
118
|
+
" tool('ticket_status', {",
|
|
119
|
+
" description: 'Look up a support ticket by id.',",
|
|
120
|
+
' input: z.object({ ticket_id: z.string() }),',
|
|
121
|
+
' output: z.object({ subject: z.string(), status: z.string() }),',
|
|
122
|
+
' fulfil: ({ input, connectors }) => {',
|
|
123
|
+
' const ticket = connectors.crm.get_ticket({ id: input.ticket_id });',
|
|
124
|
+
' return { subject: ticket.subject, status: ticket.status };',
|
|
125
|
+
' },',
|
|
126
|
+
' }),',
|
|
127
|
+
']);',
|
|
128
|
+
'```',
|
|
129
|
+
'',
|
|
130
|
+
'More: `auth.kind` is `bearer` | `apiKey` (needs `header`) | `oauth2ClientCredentials` | `delegatedOAuth` | `delegatedSessionCookie`. Use `.compute(name, { input, output, run })` for a sandboxed transform; `provides:` (instead of `use:`) exposes a connector only to compute `callOperation`; and `noodle import openapi <file>` generates a connector from an OpenAPI spec.',
|
|
131
|
+
'',
|
|
85
132
|
'## Compute connector example',
|
|
86
133
|
'',
|
|
87
134
|
'```ts',
|
|
@@ -126,7 +173,12 @@ export function renderAuthoringWorkflowReference() {
|
|
|
126
173
|
].join('\n');
|
|
127
174
|
}
|
|
128
175
|
// ----------------------------------------------------------------------------
|
|
129
|
-
// references/widgets-and-apps.md (CURATED prose + GENERATED hook table)
|
|
176
|
+
// references/widgets-and-apps.md (CURATED prose + compile-verified recipe + GENERATED hook table)
|
|
177
|
+
//
|
|
178
|
+
// The two `export default server(` recipes below are compile-verified on every `pnpm test` via
|
|
179
|
+
// scripts/verify-skill-snippets.mjs. The view component fragment pairs (in document order) with the
|
|
180
|
+
// `entry:` of the first full-server recipe — keep exactly one non-full-server ```tsx fragment ahead
|
|
181
|
+
// of the widget recipe so the gate's fragment→entry pairing stays correct.
|
|
130
182
|
// ----------------------------------------------------------------------------
|
|
131
183
|
export function renderWidgetsAndAppsReference() {
|
|
132
184
|
const hookRows = REACT_HOOKS.map((hook) => [`\`${hook}\``, HOOK_NOTES[hook] ?? '—']);
|
|
@@ -136,53 +188,197 @@ export function renderWidgetsAndAppsReference() {
|
|
|
136
188
|
'## Contents',
|
|
137
189
|
'',
|
|
138
190
|
'- Tools and views',
|
|
139
|
-
'- React authoring',
|
|
140
191
|
'- React hook surface',
|
|
141
|
-
'-
|
|
142
|
-
'-
|
|
143
|
-
'-
|
|
144
|
-
'-
|
|
192
|
+
'- Worked widget recipe',
|
|
193
|
+
'- ChatGPT App = this widget + a domain',
|
|
194
|
+
'- Knowledge/source apps (search + fetch)',
|
|
195
|
+
'- Permissions and host bridge',
|
|
145
196
|
'- Readiness and boundaries',
|
|
146
197
|
'',
|
|
147
198
|
'## Tools and views',
|
|
148
199
|
'',
|
|
149
|
-
'Use `toolWithWidget(name, { description, input, output, fulfil, view })` for a model-visible tool that renders a widget, and `toolForWidget(name, { ... })` for a widget-only helper hidden from the model. A `view` is `{ component: "name", entry: "./views/name.tsx" }
|
|
200
|
+
'Use `toolWithWidget(name, { description, input, output, fulfil, view })` for a model-visible tool that renders a widget, and `toolForWidget(name, { ... })` for a widget-only helper hidden from the model. A `view` is `{ component: "name", entry: "./views/name.tsx" }` — a React component the compiler bundles at validate/deploy time.',
|
|
150
201
|
'',
|
|
151
|
-
'## React
|
|
202
|
+
'## React hook surface',
|
|
152
203
|
'',
|
|
153
|
-
'Author views as React components.
|
|
204
|
+
'Author views as React components. `generateHelpers<ServerDefinition>()` (from `@noodleseed/one/react`) returns the typed host hooks:',
|
|
154
205
|
'',
|
|
155
|
-
'
|
|
206
|
+
mdTable(['Hook', 'Use for'], hookRows),
|
|
207
|
+
'',
|
|
208
|
+
'Bind interactive elements to tools (`useCallTool("place_order")`), drive named views with `useAppFlow(...)`, open server-created handoffs with `useHandoff()`, and annotate model-facing context with `data-llm`. Use `createViewStore("key", initial)` for multi-component widget state such as carts, filters, or drafts. Use the domain-neutral React components from `@noodleseed/one/react` (`AppShell`, `ShellNav`, `ViewStack`, `AsyncBoundary`, `ActionBar`, `Field`, `QuantityStepper`, `ChoiceGroup`, `HandoffButton`, and related state components) for rich apps before inventing local shell/control scaffolding. Adapt to the host with `useLayout()` — style for both `theme` values, and keep the inline `displayMode` compact (content fits the space; no internal scrolling). Trigger `useOpenExternal()`, `useHandoff()`, and `useSendFollowUpMessage()` only from explicit user actions. A raw `html` escape hatch exists for self-contained widgets (declarative `data-bind`/`data-action`; no inline `<script>`).',
|
|
209
|
+
'',
|
|
210
|
+
'## Worked widget recipe',
|
|
211
|
+
'',
|
|
212
|
+
'Minimal, complete, and compile-verified — `noodle validate` bundles the view and `noodle check --target chatgpt` audits it. Author two files: the view (`src/views/order-status.tsx`) and the tool declaration (`src/server.ts`).',
|
|
213
|
+
'',
|
|
214
|
+
'### 1. The view component',
|
|
215
|
+
'',
|
|
216
|
+
'Author React. `generateHelpers<ServerDefinition>()` (from `@noodleseed/one/react`) returns the typed host hooks: read the tool result with `useToolInfo`, call a widget-only helper with `useCallTool`, keep local UI state that survives re-render with `useViewState`, open an allowlisted link with `useOpenExternal`, and mirror model-facing context back to the model as text with `data-llm`.',
|
|
217
|
+
'',
|
|
218
|
+
'```tsx',
|
|
219
|
+
"import type { ServerDefinition } from '@noodleseed/one';",
|
|
156
220
|
"import { generateHelpers } from '@noodleseed/one/react';",
|
|
157
|
-
'
|
|
158
|
-
'
|
|
221
|
+
'',
|
|
222
|
+
'// One call wires the typed host bridge; destructure only the hooks this view uses.',
|
|
223
|
+
'const { useToolInfo, useCallTool, useViewState, useOpenExternal } =',
|
|
224
|
+
' generateHelpers<ServerDefinition>();',
|
|
225
|
+
'',
|
|
226
|
+
'type OrderResult = {',
|
|
227
|
+
' readonly customer?: string;',
|
|
228
|
+
' readonly item?: string;',
|
|
229
|
+
' readonly total?: number;',
|
|
230
|
+
' readonly checkoutUrl?: string;',
|
|
231
|
+
'};',
|
|
232
|
+
'',
|
|
233
|
+
'export default function OrderStatus() {',
|
|
234
|
+
" const shown = useToolInfo('show_order').structuredContent as OrderResult | undefined;",
|
|
235
|
+
" const placeOrder = useCallTool('place_order'); // calls the widget-only helper tool",
|
|
236
|
+
' const openExternal = useOpenExternal();',
|
|
237
|
+
" const [item, setItem] = useViewState('item', shown?.item ?? 'falafel_wrap'); // survives re-render",
|
|
238
|
+
' const confirmed = placeOrder.data?.structuredContent as { readonly status?: string } | undefined;',
|
|
239
|
+
' const total = shown?.total ?? 0;',
|
|
240
|
+
" const checkoutUrl = shown?.checkoutUrl ?? '';",
|
|
241
|
+
'',
|
|
242
|
+
' return (',
|
|
243
|
+
' // data-llm mirrors the visible state back to the model as text context.',
|
|
244
|
+
" <main data-llm={`Pickup order for ${shown?.customer ?? 'Guest'}: ${item}, total ${total}`}>",
|
|
245
|
+
' <h1>Pickup order</h1>',
|
|
246
|
+
' <label>',
|
|
247
|
+
' Item',
|
|
248
|
+
' <select value={item} onChange={(event) => setItem(event.currentTarget.value)}>',
|
|
249
|
+
' <option value="falafel_wrap">Falafel Wrap</option>',
|
|
250
|
+
' <option value="lentil_soup">Lentil Soup</option>',
|
|
251
|
+
' <option value="mint_lemonade">Mint Lemonade</option>',
|
|
252
|
+
' </select>',
|
|
253
|
+
' </label>',
|
|
254
|
+
' <button',
|
|
255
|
+
' type="button"',
|
|
256
|
+
' disabled={placeOrder.isPending}',
|
|
257
|
+
" onClick={() => placeOrder.callTool({ customer: shown?.customer ?? 'Guest', item })}",
|
|
258
|
+
' >',
|
|
259
|
+
" {placeOrder.isPending ? 'Placing…' : 'Place order'}",
|
|
260
|
+
' </button>',
|
|
261
|
+
' <p>{confirmed?.status ?? `Total: $${total}`}</p>',
|
|
262
|
+
' <button type="button" onClick={() => openExternal(checkoutUrl)}>',
|
|
263
|
+
' Continue checkout',
|
|
264
|
+
' </button>',
|
|
265
|
+
' </main>',
|
|
266
|
+
' );',
|
|
267
|
+
'}',
|
|
159
268
|
'```',
|
|
160
269
|
'',
|
|
161
|
-
'
|
|
270
|
+
'### 2. The tool declaration',
|
|
162
271
|
'',
|
|
163
|
-
'
|
|
272
|
+
'`toolWithWidget` is the model-visible tool that renders the view; pair it with `toolForWidget` helpers the view calls (hidden from the model). Wire `view: { component, entry }`, `csp`, a widget `domain`, and a real `output` schema so non-Apps hosts still receive structured data. Inside `fulfil`, `input` is a symbolic ref recorded into a flow — reference it in output/template strings, but never use it as an object key or `if` condition.',
|
|
164
273
|
'',
|
|
165
|
-
|
|
274
|
+
'```ts',
|
|
275
|
+
"import { annotations, server, toolForWidget, toolWithWidget, z } from '@noodleseed/one';",
|
|
276
|
+
'',
|
|
277
|
+
"const item = z.enum(['falafel_wrap', 'lentil_soup', 'mint_lemonade']).default('falafel_wrap');",
|
|
278
|
+
'const checkoutUrl = (customer: string) =>',
|
|
279
|
+
' `https://orders.example.com/pickup?customer=${customer}`;',
|
|
280
|
+
'',
|
|
281
|
+
'export default server(',
|
|
282
|
+
" 'pickup',",
|
|
283
|
+
' {',
|
|
284
|
+
" title: 'Pickup',",
|
|
285
|
+
" version: '1.0.0',",
|
|
286
|
+
' // External-link targets the widget opens; the compiler derives ChatGPT redirect_domains from this.',
|
|
287
|
+
" handoff: { allowedDomains: ['https://orders.example.com'] },",
|
|
288
|
+
' },',
|
|
289
|
+
' [',
|
|
290
|
+
" toolWithWidget('show_order', {",
|
|
291
|
+
" description: 'Show the pickup order and render the ordering widget.',",
|
|
292
|
+
' // Declare tool annotations — a ChatGPT-submission requirement. A read → `readOnly()`.',
|
|
293
|
+
' annotations: annotations.readOnly(),',
|
|
294
|
+
" input: z.object({ customer: z.string().default('Guest') }),",
|
|
295
|
+
' output: z.object({',
|
|
296
|
+
' customer: z.string(),',
|
|
297
|
+
' item: z.string(),',
|
|
298
|
+
' total: z.number(),',
|
|
299
|
+
' checkoutUrl: z.string(),',
|
|
300
|
+
' }),',
|
|
301
|
+
' fulfil: ({ input }) => ({',
|
|
302
|
+
' customer: input.customer,',
|
|
303
|
+
" item: 'falafel_wrap',",
|
|
304
|
+
' total: 12,',
|
|
305
|
+
' checkoutUrl: checkoutUrl(input.customer),',
|
|
306
|
+
' }),',
|
|
307
|
+
" widgetTitle: 'Pickup order',",
|
|
308
|
+
" widgetDescription: 'Pick an item and place a pickup order.',",
|
|
309
|
+
' // A ChatGPT App is this widget + a domain: one https origin per app.',
|
|
310
|
+
" domain: 'https://pickup.example.com',",
|
|
311
|
+
" view: { component: 'order-status', entry: './views/order-status.tsx' },",
|
|
312
|
+
' csp: {',
|
|
313
|
+
" connectDomains: ['https://orders.example.com'],",
|
|
314
|
+
" resourceDomains: ['https://example.com'],",
|
|
315
|
+
' // Keep CSP origins exact and minimal. Add `frameDomains` ONLY if the widget embeds an',
|
|
316
|
+
' // iframe — it relaxes subframe rendering and triggers stricter ChatGPT review.',
|
|
317
|
+
' },',
|
|
318
|
+
' }),',
|
|
319
|
+
" // Widget-only helper the view calls with useCallTool('place_order'); hidden from the model.",
|
|
320
|
+
" toolForWidget('place_order', {",
|
|
321
|
+
" description: 'Place a pickup order from the widget.',",
|
|
322
|
+
' // A write that reaches the outside world → `action()` (not read-only, not destructive).',
|
|
323
|
+
' annotations: annotations.action(),',
|
|
324
|
+
" input: z.object({ customer: z.string().default('Guest'), item }),",
|
|
325
|
+
' output: z.object({ status: z.string(), item: z.string(), checkoutUrl: z.string() }),',
|
|
326
|
+
' fulfil: ({ input }) => ({',
|
|
327
|
+
' status: `Order placed for ${input.customer}.`,',
|
|
328
|
+
' item: input.item,',
|
|
329
|
+
' checkoutUrl: checkoutUrl(input.customer),',
|
|
330
|
+
' }),',
|
|
331
|
+
' }),',
|
|
332
|
+
' ],',
|
|
333
|
+
');',
|
|
334
|
+
'```',
|
|
166
335
|
'',
|
|
167
|
-
'
|
|
336
|
+
'## ChatGPT App = this widget + a domain',
|
|
168
337
|
'',
|
|
169
|
-
'
|
|
338
|
+
'A "ChatGPT App" is not a separate authoring surface — it is exactly this MCP Apps widget rendered by the ChatGPT host. From the same declaration you author three things:',
|
|
170
339
|
'',
|
|
171
|
-
'
|
|
340
|
+
'- `domain` on the widget — one https origin per app (required for app-store submission, optional for dev-mode testing).',
|
|
341
|
+
'- `csp: { connectDomains, resourceDomains }` — the exact network/resource origins the widget may reach; keep them minimal. Add `frameDomains` only if the widget embeds an iframe (it relaxes subframe rendering and draws stricter review).',
|
|
342
|
+
'- server `handoff.allowedDomains` — the external-link targets `useOpenExternal()` opens.',
|
|
172
343
|
'',
|
|
173
|
-
'
|
|
344
|
+
'The compiler emits the rest automatically: the `openai/*` metadata (`openai/outputTemplate`, `openai/widgetCSP`, `openai/widgetDescription`) and ChatGPT’s `redirect_domains` (derived from `handoff.allowedDomains`). `window.openai` and Claude’s ext-apps bridge are auto-detected at startup, so the same widget renders in both Claude and ChatGPT with no host-specific code.',
|
|
174
345
|
'',
|
|
175
|
-
'
|
|
346
|
+
'Verify it in the loop: `noodle check --target chatgpt --json` returning `ok:true` means the widget is **metadata-ready** for ChatGPT’s checks (`domain`, `openai/outputTemplate`, CSP present) — it does NOT prove host rendering, conversation UX, or submission acceptance. Fix any `severity:"error"` finding by its `fix`, then re-check. Validate real rendering in ChatGPT Developer Mode / MCP Inspector as a higher level before submitting.',
|
|
176
347
|
'',
|
|
177
|
-
'
|
|
348
|
+
'**Every tool needs annotations** (`annotations.readOnly()` / `.action()` / `.openAction()`) — missing or wrong `readOnlyHint`/`openWorldHint`/`destructiveHint` is a common submission rejection. **App-store submission is more than building**: a public https endpoint, exact CSP, org verification, app info, screenshots, and test prompts are required — follow OpenAI’s Apps submission guidelines; `noodle check --target chatgpt` covers only the metadata prerequisites.',
|
|
178
349
|
'',
|
|
179
|
-
'
|
|
350
|
+
'## Knowledge/source apps (ChatGPT): search + fetch',
|
|
180
351
|
'',
|
|
181
|
-
'
|
|
352
|
+
'If the app is a read-only knowledge/source connector (docs, wiki, CRM lookups) meant for ChatGPT company-knowledge, implement exactly two tools — `search` and `fetch`, both read-only. ChatGPT only surfaces knowledge apps that match these signatures:',
|
|
182
353
|
'',
|
|
183
|
-
'
|
|
354
|
+
'```ts',
|
|
355
|
+
"import { annotations, server, tool, z } from '@noodleseed/one';",
|
|
356
|
+
'',
|
|
357
|
+
"export default server('kb', { title: 'Knowledge base', version: '1.0.0' }, [",
|
|
358
|
+
" tool('search', {",
|
|
359
|
+
" description: 'Search the knowledge base; return citable results.',",
|
|
360
|
+
' annotations: annotations.readOnly(),',
|
|
361
|
+
' input: z.object({ query: z.string() }),',
|
|
362
|
+
' output: z.object({',
|
|
363
|
+
' results: z.array(z.object({ id: z.string(), title: z.string(), url: z.string() })),',
|
|
364
|
+
' }),',
|
|
365
|
+
" fulfil: ({ input }) => ({ results: [{ id: 'doc-1', title: `Match: ${input.query}`, url: 'https://example.com/doc-1' }] }),",
|
|
366
|
+
' }),',
|
|
367
|
+
" tool('fetch', {",
|
|
368
|
+
" description: 'Fetch one document by id for citation.',",
|
|
369
|
+
' annotations: annotations.readOnly(),',
|
|
370
|
+
' input: z.object({ id: z.string() }),',
|
|
371
|
+
' output: z.object({ id: z.string(), title: z.string(), text: z.string(), url: z.string() }),',
|
|
372
|
+
" fulfil: ({ input }) => ({ id: input.id, title: 'Doc', text: 'Full document text…', url: 'https://example.com/doc-1' }),",
|
|
373
|
+
' }),',
|
|
374
|
+
']);',
|
|
375
|
+
'```',
|
|
184
376
|
'',
|
|
185
|
-
'
|
|
377
|
+
'`search` → `{ results: [{ id, title, url }] }`; `fetch` → `{ id, title, text, url, metadata? }`. `url` must be an absolute, user-openable https link for citation.',
|
|
378
|
+
'',
|
|
379
|
+
'## Permissions and host bridge',
|
|
380
|
+
'',
|
|
381
|
+
'Declare extra host capabilities with `permissions` (e.g. `permissions: { clipboardWrite: {} }`). Secrets are never injected into widgets and tool output is redacted before widget delivery. Tool results still carry useful `content`/`structuredContent`, so non-Apps hosts degrade gracefully.',
|
|
186
382
|
'',
|
|
187
383
|
'## Readiness and boundaries',
|
|
188
384
|
'',
|
|
@@ -195,7 +391,10 @@ export function renderWidgetsAndAppsReference() {
|
|
|
195
391
|
const FLAGSHIP_EXAMPLES = [
|
|
196
392
|
['hello', 'Minimal TypeScript quickstart — a single tool, no connectors/widgets.'],
|
|
197
393
|
['weather', 'HTTP connectors, multi-step flows, and the sandboxed compute connector.'],
|
|
198
|
-
[
|
|
394
|
+
[
|
|
395
|
+
'food-ordering',
|
|
396
|
+
'Consumer ordering MCP App widgets, app-only helpers, cart state, assets, branding, and handoff.',
|
|
397
|
+
],
|
|
199
398
|
[
|
|
200
399
|
'customer-auth',
|
|
201
400
|
'End-user (customer) auth via OIDC/Firebase bridge with delegated credentials.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-authoring-refs.js","sourceRoot":"","sources":["../src/skill-authoring-refs.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,8FAA8F;AAC9F,4FAA4F;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,sBAAsB;QACtB,EAAE;QACF,aAAa;QACb,EAAE;QACF,eAAe;QACf,aAAa;QACb,eAAe;QACf,cAAc;QACd,0BAA0B;QAC1B,6BAA6B;QAC7B,SAAS;QACT,yBAAyB;QACzB,cAAc;QACd,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,oUAAoU;QACpU,oJAAoJ;QACpJ,+TAA+T;QAC/T,EAAE;QACF,cAAc;QACd,EAAE;QACF,gVAAgV;QAChV,EAAE;QACF,gBAAgB;QAChB,EAAE;QACF,gLAAgL;QAChL,EAAE;QACF,eAAe;QACf,EAAE;QACF,kDAAkD;QAClD,EAAE;QACF,uMAAuM;QACvM,+NAA+N;QAC/N,EAAE;QACF,mKAAmK;QACnK,EAAE;QACF,qVAAqV;QACrV,EAAE;QACF,2BAA2B;QAC3B,EAAE;QACF,OAAO;QACP,gEAAgE;QAChE,EAAE;QACF,sDAAsD;QACtD,sCAAsC;QACtC,+CAA+C;QAC/C,0DAA0D;QAC1D,iBAAiB;QACjB,qBAAqB;QACrB,qBAAqB;QACrB,6DAA6D;QAC7D,qFAAqF;QACrF,sBAAsB;QACtB,2BAA2B;QAC3B,uDAAuD;QACvD,6FAA6F;QAC7F,QAAQ;QACR,qBAAqB;QACrB,uBAAuB;QACvB,4GAA4G;QAC5G,iEAAiE;QACjE,uBAAuB;QACvB,yBAAyB;QACzB,uFAAuF;QACvF,sDAAsD;QACtD,QAAQ;QACR,MAAM;QACN,KAAK;QACL,KAAK;QACL,EAAE;QACF,6aAA6a;QAC7a,EAAE;QACF,8BAA8B;QAC9B,EAAE;QACF,OAAO;QACP,8EAA8E;QAC9E,uFAAuF;QACvF,0DAA0D;QAC1D,gDAAgD;QAChD,iDAAiD;QACjD,mCAAmC;QACnC,gGAAgG;QAChG,4EAA4E;QAC5E,MAAM;QACN,KAAK;QACL,KAAK;QACL,EAAE;QACF,+TAA+T;QAC/T,EAAE;QACF,UAAU;QACV,EAAE;QACF,uPAAuP;QACvP,EAAE;QACF,OAAO;QACP,gDAAgD;QAChD,qCAAqC;QACrC,EAAE;QACF,4BAA4B;QAC5B,oDAAoD;QACpD,iDAAiD;QACjD,OAAO;QACP,KAAK;QACL,KAAK;QACL,EAAE;QACF,yIAAyI;QACzI,EAAE;QACF,0BAA0B;QAC1B,EAAE;QACF,8NAA8N;QAC9N,EAAE;QACF,eAAe;QACf,EAAE;QACF,+SAA+S;KAChT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"skill-authoring-refs.js","sourceRoot":"","sources":["../src/skill-authoring-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export interface SkillReference {
|
|
|
8
8
|
export declare function skillRouterBody(target: AgentTarget): string;
|
|
9
9
|
export declare function renderSdkSurfaceReference(): string;
|
|
10
10
|
export declare function renderCliCommandsReference(): string;
|
|
11
|
+
export declare function renderAgentContractReference(): string;
|
|
11
12
|
export declare function renderCompileErrorsReference(): string;
|
|
12
13
|
export declare const SKILL_REFERENCES: readonly SkillReference[];
|
|
13
14
|
//# sourceMappingURL=skill-content.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-content.d.ts","sourceRoot":"","sources":["../src/skill-content.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-content.d.ts","sourceRoot":"","sources":["../src/skill-content.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAc9C,eAAO,MAAM,iBAAiB,QAEmC,CAAC;AAElE,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;CAC/B;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAoD3D;AAiLD,wBAAgB,yBAAyB,IAAI,MAAM,CA2ClD;AAMD,wBAAgB,0BAA0B,IAAI,MAAM,CA+BnD;AAMD,wBAAgB,4BAA4B,IAAI,MAAM,CAiDrD;AAMD,wBAAgB,4BAA4B,IAAI,MAAM,CAoBrD;AAMD,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAYrD,CAAC"}
|