@noodleseed/one 0.70.0 → 0.71.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/commands/auth-google-ops.d.ts +3 -0
- package/dist/commands/auth-google-ops.d.ts.map +1 -0
- package/dist/commands/auth-google-ops.js +198 -0
- package/dist/commands/auth-google-ops.js.map +1 -0
- package/dist/commands/auth-ops.d.ts.map +1 -1
- package/dist/commands/auth-ops.js +5 -1
- package/dist/commands/auth-ops.js.map +1 -1
- package/dist/commands/catalog-data-core.d.ts.map +1 -1
- package/dist/commands/catalog-data-core.js +17 -1
- package/dist/commands/catalog-data-core.js.map +1 -1
- package/dist/deploy.js +1 -1
- package/dist/deploy.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +7 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +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 +1 -0
- package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.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 +5 -1
- 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.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +7 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
- package/node_modules/@noodle-borg/authoring/dist/connection-types.d.ts +23 -0
- package/node_modules/@noodle-borg/authoring/dist/connection-types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/connection-types.js +16 -0
- package/node_modules/@noodle-borg/authoring/dist/connection-types.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/connections.d.ts +2 -2
- package/node_modules/@noodle-borg/authoring/dist/connections.d.ts.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/connections.js +13 -2
- package/node_modules/@noodle-borg/authoring/dist/connections.js.map +1 -1
- package/node_modules/@noodle-borg/authoring/dist/index.d.ts +1 -1
- 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/compiler/dist/artifact/config.d.ts +2 -2
- package/node_modules/@noodle-borg/compiler/dist/artifact/config.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/config.js +22 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/config.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +9 -0
- package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js +1 -1
- package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js +49 -0
- package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +18 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +15 -0
- package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
- package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts +3 -1
- package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.js +10 -2
- package/node_modules/@noodle-borg/service/dist/credential-binding-index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/credential-broker-options.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/credential-broker-options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/credential-broker-options.js +9 -0
- package/node_modules/@noodle-borg/service/dist/credential-broker-options.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/credential-broker.d.ts +5 -2
- package/node_modules/@noodle-borg/service/dist/credential-broker.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/credential-broker.js +29 -0
- package/node_modules/@noodle-borg/service/dist/credential-broker.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-postgres.d.ts +21 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-postgres.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-postgres.js +195 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-postgres.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-probe.d.ts +10 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-probe.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-probe.js +47 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-probe.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-store.d.ts +46 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-store.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-store.js +88 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-store.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-validation.d.ts +4 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-validation.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-validation.js +13 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity-validation.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity.d.ts +38 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity.js +289 -0
- package/node_modules/@noodle-borg/service/dist/google-workload-identity.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/index.js +3 -0
- package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/app.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/app.js +11 -0
- package/node_modules/@noodle-borg/service/dist/oauth/app.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/paths.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/oauth/paths.js +1 -0
- package/node_modules/@noodle-borg/service/dist/oauth/paths.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/options.d.ts +8 -0
- package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +3 -0
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.js +3 -0
- package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.d.ts +25 -0
- package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.js +21 -0
- package/node_modules/@noodle-borg/service/dist/routes/credential-auth-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity-dispatch.d.ts +14 -0
- package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity-dispatch.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity-dispatch.js +30 -0
- package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity-dispatch.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity.d.ts +19 -0
- package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity.d.ts.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity.js +105 -0
- package/node_modules/@noodle-borg/service/dist/routes/google-workload-identity.js.map +1 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts +3 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/paths.js +6 -0
- package/node_modules/@noodle-borg/service/dist/routes/paths.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/serve.js +29 -0
- package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/service.js +6 -2
- package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,6 +11,7 @@ export const BUNDLED_EXAMPLE_NAMES = [
|
|
|
11
11
|
"acme-bistro",
|
|
12
12
|
"customer-auth",
|
|
13
13
|
"gmail-multi-account",
|
|
14
|
+
"google-bigquery",
|
|
14
15
|
];
|
|
15
16
|
/** Real example sources vendored from `examples/<name>`, written under `examples/` in the skill tree. */
|
|
16
17
|
export const BUNDLED_EXAMPLE_FILES = [
|
|
@@ -69,6 +70,12 @@ export const BUNDLED_EXAMPLE_FILES = [
|
|
|
69
70
|
{ relPath: "examples/gmail-multi-account/src/server.ts", content: "import {\n annotations,\n bind,\n connection,\n connector,\n externalExchange,\n gmailConnector,\n server,\n tool,\n when,\n z,\n} from '@noodleseed/one';\n\nexport const PERSONAL_ACCOUNT = 'personal@example.com';\nexport const WORK_ACCOUNT = 'work@example.com';\n\nconst readAccounts = z.union([\n z.tuple([z.literal(PERSONAL_ACCOUNT)]).and(z.array(z.literal(PERSONAL_ACCOUNT)).length(1)),\n z.tuple([z.literal(WORK_ACCOUNT)]).and(z.array(z.literal(WORK_ACCOUNT)).length(1)),\n z\n .tuple([z.literal(PERSONAL_ACCOUNT), z.literal(WORK_ACCOUNT)])\n .and(z.array(z.enum([PERSONAL_ACCOUNT, WORK_ACCOUNT])).length(2)),\n]);\nconst writeAccounts = z.union([\n z.tuple([z.literal(PERSONAL_ACCOUNT)]).and(z.array(z.literal(PERSONAL_ACCOUNT)).length(1)),\n z.tuple([z.literal(WORK_ACCOUNT)]).and(z.array(z.literal(WORK_ACCOUNT)).length(1)),\n]);\nconst identifier = z.string().min(1);\nconst rawMessage = z.string().min(1);\nconst labelIds = z.array(identifier).min(1).max(100);\nconst epochMillis = z.string().regex(/^\\d{1,19}$/);\nconst vacationOptionalFields = {\n restrict_to_contacts: z.boolean().optional(),\n restrict_to_domain: z.boolean().optional(),\n start_time: epochMillis.optional(),\n end_time: epochMillis.optional(),\n};\nconst output = z.object({\n results: z.array(\n z.object({ account: z.enum([PERSONAL_ACCOUNT, WORK_ACCOUNT]), data: z.unknown() }),\n ),\n});\n\nconst gmail = gmailConnector();\nconst personal = connection('personal_gmail', externalExchange());\nconst work = connection('work_gmail', externalExchange());\n\nconst merge = connector('gmail_account_results')\n .version('1.0.0')\n .compute('merge', {\n type: 'read',\n input: z.object({\n personal: z.unknown().optional(),\n work_first: z.unknown().optional(),\n work_second: z.unknown().optional(),\n }),\n output,\n run: (input) => {\n const results: Array<{ account: string; data: unknown }> = [];\n if (input.personal !== undefined) {\n results.push({ account: 'personal@example.com', data: input.personal });\n }\n const workData = input.work_first ?? input.work_second;\n if (workData !== undefined) {\n results.push({ account: 'work@example.com', data: workData });\n }\n return { results };\n },\n });\n\nconst confirmedWrite = annotations.openAction({ destructive: false, confirm: true });\nconst confirmedTrash = annotations.openAction({ destructive: true, confirm: true });\n\nexport default server(\n 'gmail_multi_account',\n {\n title: 'Gmail Multi-Account Automation',\n version: '1.0.0',\n use: {\n personal_gmail: bind(gmail, { profile: 'user_oauth', connection: personal }),\n work_gmail: bind(gmail, { profile: 'user_oauth', connection: work }),\n gmail_results: merge,\n },\n },\n [\n tool('search_messages', {\n description: 'Search one connected Gmail account or the canonical personal-and-work pair.',\n input: z.object({\n accounts: readAccounts,\n query: z.string(),\n max_results: z.number().int().min(1).max(500).optional(),\n }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.search_messages({\n q: input.query,\n maxResults: input.max_results,\n }),\n );\n const workFirst = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.search_messages({\n q: input.query,\n maxResults: input.max_results,\n }),\n );\n const workSecond = when(input.accounts.at(1).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.search_messages({\n q: input.query,\n maxResults: input.max_results,\n }),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: workFirst.data.optional(),\n work_second: workSecond.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('get_message', {\n description: 'Get one Gmail message from one connected account or both canonical accounts.',\n input: z.object({\n accounts: readAccounts,\n message_id: identifier,\n format: z.enum(['minimal', 'full', 'raw', 'metadata']).optional(),\n }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.get_message({\n message_id: input.message_id,\n format: input.format,\n }),\n );\n const workFirst = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.get_message({\n message_id: input.message_id,\n format: input.format,\n }),\n );\n const workSecond = when(input.accounts.at(1).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.get_message({\n message_id: input.message_id,\n format: input.format,\n }),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: workFirst.data.optional(),\n work_second: workSecond.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('get_thread', {\n description: 'Get one Gmail thread from one connected account or both canonical accounts.',\n input: z.object({\n accounts: readAccounts,\n thread_id: identifier,\n format: z.enum(['minimal', 'full', 'metadata']).optional(),\n }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.get_thread({\n thread_id: input.thread_id,\n format: input.format,\n }),\n );\n const workFirst = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.get_thread({\n thread_id: input.thread_id,\n format: input.format,\n }),\n );\n const workSecond = when(input.accounts.at(1).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.get_thread({\n thread_id: input.thread_id,\n format: input.format,\n }),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: workFirst.data.optional(),\n work_second: workSecond.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('list_drafts', {\n description: 'List drafts from one connected Gmail account or both canonical accounts.',\n input: z.object({\n accounts: readAccounts,\n query: z.string().optional(),\n max_results: z.number().int().min(1).max(500).optional(),\n }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.list_drafts({\n q: input.query,\n maxResults: input.max_results,\n }),\n );\n const workFirst = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.list_drafts({\n q: input.query,\n maxResults: input.max_results,\n }),\n );\n const workSecond = when(input.accounts.at(1).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.list_drafts({\n q: input.query,\n maxResults: input.max_results,\n }),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: workFirst.data.optional(),\n work_second: workSecond.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('get_draft', {\n description: 'Get one draft from one connected Gmail account or both canonical accounts.',\n input: z.object({\n accounts: readAccounts,\n draft_id: identifier,\n format: z.enum(['minimal', 'full', 'raw', 'metadata']).optional(),\n }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.get_draft({\n draft_id: input.draft_id,\n format: input.format,\n }),\n );\n const workFirst = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.get_draft({\n draft_id: input.draft_id,\n format: input.format,\n }),\n );\n const workSecond = when(input.accounts.at(1).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.get_draft({\n draft_id: input.draft_id,\n format: input.format,\n }),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: workFirst.data.optional(),\n work_second: workSecond.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('get_vacation', {\n description: 'Read vacation-responder settings from one connected account or both accounts.',\n input: z.object({ accounts: readAccounts }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.get_vacation({}),\n );\n const workFirst = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.get_vacation({}),\n );\n const workSecond = when(input.accounts.at(1).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.get_vacation({}),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: workFirst.data.optional(),\n work_second: workSecond.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('create_draft', {\n description:\n 'Create a Gmail draft in exactly one selected account from a base64url MIME message.',\n annotations: confirmedWrite,\n input: z.object({ accounts: writeAccounts, raw: rawMessage }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.create_draft({ raw: input.raw }),\n );\n const work = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.create_draft({ raw: input.raw }),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: work.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('update_draft', {\n description:\n 'Replace a Gmail draft in exactly one selected account with a base64url MIME message.',\n annotations: confirmedWrite,\n input: z.object({ accounts: writeAccounts, draft_id: identifier, raw: rawMessage }),\n output,\n fulfil: ({ input, connectors }) => {\n const args = { draft_id: input.draft_id, raw: input.raw };\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.update_draft(args),\n );\n const work = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.update_draft(args),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: work.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('send_draft', {\n description: 'Send an existing Gmail draft from exactly one selected account.',\n annotations: confirmedWrite,\n input: z.object({ accounts: writeAccounts, draft_id: identifier }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.send_draft({ draft_id: input.draft_id }),\n );\n const work = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.send_draft({ draft_id: input.draft_id }),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: work.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('modify_message_labels', {\n description: 'Add or remove Gmail label ids on one message in exactly one selected account.',\n annotations: confirmedWrite,\n input: z.object({\n accounts: writeAccounts,\n message_id: identifier,\n add_label_ids: labelIds.optional(),\n remove_label_ids: labelIds.optional(),\n }),\n output,\n fulfil: ({ input, connectors }) => {\n const args = {\n message_id: input.message_id,\n addLabelIds: input.add_label_ids,\n removeLabelIds: input.remove_label_ids,\n };\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.modify_message_labels(args),\n );\n const work = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.modify_message_labels(args),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: work.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('archive_message', {\n description: 'Archive one Gmail message in exactly one account by removing INBOX.',\n annotations: confirmedWrite,\n input: z.object({ accounts: writeAccounts, message_id: identifier }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.archive_message({ message_id: input.message_id }),\n );\n const work = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.archive_message({ message_id: input.message_id }),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: work.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('send_message', {\n description: 'Send one base64url MIME message from exactly one selected Gmail account.',\n annotations: confirmedWrite,\n input: z.object({\n accounts: writeAccounts,\n raw: rawMessage,\n thread_id: identifier.optional(),\n }),\n output,\n fulfil: ({ input, connectors }) => {\n const args = { raw: input.raw, threadId: input.thread_id };\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.send_message(args),\n );\n const work = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.send_message(args),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: work.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('trash_message', {\n description: 'Move one Gmail message to trash in exactly one account. This is reversible.',\n annotations: confirmedTrash,\n input: z.object({ accounts: writeAccounts, message_id: identifier }),\n output,\n fulfil: ({ input, connectors }) => {\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.trash_message({ message_id: input.message_id }),\n );\n const work = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.trash_message({ message_id: input.message_id }),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: work.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n tool('update_vacation', {\n description: 'Update vacation-responder settings on exactly one selected Gmail account.',\n annotations: confirmedWrite,\n input: z.object({\n accounts: writeAccounts,\n settings: z.union([\n z.object({\n enable_auto_reply: z.literal(false),\n response_subject: z.string().min(1).optional(),\n response_body_plain_text: z.string().min(1).optional(),\n ...vacationOptionalFields,\n }),\n z.object({\n enable_auto_reply: z.literal(true),\n response_subject: z.string().min(1),\n response_body_plain_text: z.string().min(1).optional(),\n ...vacationOptionalFields,\n }),\n z.object({\n enable_auto_reply: z.literal(true),\n response_subject: z.string().min(1).optional(),\n response_body_plain_text: z.string().min(1),\n ...vacationOptionalFields,\n }),\n ]),\n }),\n output,\n fulfil: ({ input, connectors }) => {\n const args = {\n enableAutoReply: input.settings.enable_auto_reply,\n responseSubject: input.settings.response_subject,\n responseBodyPlainText: input.settings.response_body_plain_text,\n restrictToContacts: input.settings.restrict_to_contacts,\n restrictToDomain: input.settings.restrict_to_domain,\n startTime: input.settings.start_time,\n endTime: input.settings.end_time,\n };\n const personal = when(input.accounts.at(0).equals(PERSONAL_ACCOUNT), () =>\n connectors.personal_gmail.update_vacation(args),\n );\n const work = when(input.accounts.at(0).equals(WORK_ACCOUNT), () =>\n connectors.work_gmail.update_vacation(args),\n );\n const merged = connectors.gmail_results.merge({\n personal: personal.data.optional(),\n work_first: work.data.optional(),\n });\n return { results: merged.results };\n },\n }),\n ],\n);\n" },
|
|
70
71
|
{ relPath: "examples/gmail-multi-account/test/server.test.ts", content: "import { readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { describe, expect, it } from 'vitest';\nimport {\n compileManifest,\n InMemoryCatalog,\n validateJsonSchemaWithDefaults,\n} from '../../../packages/compiler/src/index.js';\nimport { compileConnectors } from '../../../packages/connector-defs/src/index.js';\nimport {\n type CredentialBroker,\n type CredentialRequest,\n type DownstreamCredential,\n executePreparedTool,\n executeTool,\n InMemoryConnectorRegistry,\n isConfirmationRequired,\n prepareToolForConfirmation,\n} from '../../../packages/runtime/src/index.js';\nimport app, { PERSONAL_ACCOUNT, WORK_ACCOUNT } from '../src/server.js';\n\nconst here = dirname(fileURLToPath(import.meta.url));\n\nasync function compiledFixture() {\n const catalog = structuredClone(app.toConnectorCatalog());\n if (catalog === undefined) throw new Error('expected connector catalog');\n for (const connector of catalog.connectors) {\n if ('http' in connector) {\n for (const [name, operation] of Object.entries(connector.operations)) {\n operation.fake = {\n response: {\n id: `${name}-fixture`,\n messages: [{ id: `${name}-message` }],\n drafts: [{ id: `${name}-draft` }],\n },\n };\n }\n }\n }\n const connectors = compileConnectors(JSON.stringify(catalog), { mode: 'fake' });\n if (!connectors.ok) throw new Error(JSON.stringify(connectors.errors));\n const manifest = await app.toManifest();\n const compiled = compileManifest(manifest, {\n catalog: new InMemoryCatalog(connectors.catalog),\n });\n if (!compiled.ok) throw new Error(JSON.stringify(compiled.errors));\n const requests: CredentialRequest[] = [];\n const broker: CredentialBroker = {\n getCredential(request): Promise<DownstreamCredential> {\n requests.push(request);\n return Promise.resolve({ token: `${request.bindingId}-fixture-token` });\n },\n };\n return {\n artifact: compiled.artifact,\n deps: { connectors: new InMemoryConnectorRegistry(connectors.connectors), broker },\n requests,\n };\n}\n\ndescribe('multi-account Gmail flagship', () => {\n it('binds the same curated connector twice without provider ids, credentials, or real labels', async () => {\n const manifest = await app.toManifest();\n expect(manifest.connectors).toMatchObject({\n personal_gmail: {\n id: 'gmail',\n binding: {\n profile: 'user_oauth',\n connection: { id: 'personal_gmail', source: { kind: 'externalExchange' } },\n },\n },\n work_gmail: {\n id: 'gmail',\n binding: {\n profile: 'user_oauth',\n connection: { id: 'work_gmail', source: { kind: 'externalExchange' } },\n },\n },\n });\n const wire = JSON.stringify({ manifest, catalog: app.toConnectorCatalog() });\n expect(wire).not.toMatch(/access[_-]?token|client[_-]?secret/i);\n });\n\n it('emits enforceable canonical account arrays on every tool', async () => {\n const manifest = await app.toManifest();\n for (const tool of manifest.tools) {\n expect(tool.inputSchema.properties).toHaveProperty('accounts');\n expect(JSON.stringify(tool.inputSchema.properties.accounts)).toContain(PERSONAL_ACCOUNT);\n expect(JSON.stringify(tool.inputSchema.properties.accounts)).toContain(WORK_ACCOUNT);\n }\n const read = manifest.tools.find((tool) => tool.name === 'search_messages');\n const write = manifest.tools.find((tool) => tool.name === 'trash_message');\n const readAccountsSchema = JSON.stringify(read?.inputSchema.properties.accounts);\n const writeAccountsSchema = JSON.stringify(write?.inputSchema.properties.accounts);\n expect(readAccountsSchema).toContain(PERSONAL_ACCOUNT);\n expect(readAccountsSchema).toContain(WORK_ACCOUNT);\n expect(readAccountsSchema).toContain('\"maxItems\":2');\n expect(writeAccountsSchema).not.toContain('\"maxItems\":2');\n });\n\n it('allows subject-only or plain-body-only vacation replies but rejects an empty enabled reply', async () => {\n const manifest = await app.toManifest();\n const schema = manifest.tools.find((tool) => tool.name === 'update_vacation')?.inputSchema;\n if (schema === undefined) throw new Error('expected update_vacation schema');\n const base = { accounts: [PERSONAL_ACCOUNT], settings: { enable_auto_reply: true } };\n\n expect(\n validateJsonSchemaWithDefaults(schema, {\n ...base,\n settings: { ...base.settings, response_subject: 'Away' },\n }).issues,\n ).toHaveLength(0);\n expect(\n validateJsonSchemaWithDefaults(schema, {\n ...base,\n settings: { ...base.settings, response_body_plain_text: 'Back soon' },\n }).issues,\n ).toHaveLength(0);\n expect(validateJsonSchemaWithDefaults(schema, base).issues).not.toHaveLength(0);\n });\n\n it.each([\n [],\n ['unknown@example.com'],\n [PERSONAL_ACCOUNT, PERSONAL_ACCOUNT],\n [WORK_ACCOUNT, PERSONAL_ACCOUNT],\n ])('rejects invalid read accounts %j before connector dispatch', async (accounts) => {\n const setup = await compiledFixture();\n const schema = setup.artifact.tools.find(\n (candidate) => candidate.name === 'search_messages',\n )?.inputSchema;\n if (!schema) throw new Error('expected search schema');\n const result = validateJsonSchemaWithDefaults(schema, { accounts, query: '' });\n expect(result.issues).not.toHaveLength(0);\n expect(setup.requests).toHaveLength(0);\n });\n\n it('rejects multi-account mutations at the write schema boundary', async () => {\n const setup = await compiledFixture();\n const schema = setup.artifact.tools.find(\n (candidate) => candidate.name === 'trash_message',\n )?.inputSchema;\n if (!schema) throw new Error('expected trash schema');\n\n const result = validateJsonSchemaWithDefaults(schema, {\n accounts: [PERSONAL_ACCOUNT, WORK_ACCOUNT],\n message_id: 'fixture-message',\n });\n\n expect(result.issues).not.toHaveLength(0);\n expect(setup.requests).toHaveLength(0);\n });\n\n it('rejects a no-op label mutation before confirmation or credential lookup', async () => {\n const setup = await compiledFixture();\n\n await expect(\n prepareToolForConfirmation(\n setup.artifact,\n 'modify_message_labels',\n { accounts: [PERSONAL_ACCOUNT], message_id: 'fixture-message' },\n setup.deps,\n ),\n ).resolves.toMatchObject({ status: 'failed', error: { code: 'arg_invalid' } });\n expect(setup.requests).toHaveLength(0);\n });\n\n it('routes personal, work, and combined reads to isolated bindings and preserves account labels', async () => {\n const personal = await compiledFixture();\n const personalResult = await executeTool(\n personal.artifact,\n 'search_messages',\n { accounts: [PERSONAL_ACCOUNT], query: 'is:unread' },\n personal.deps,\n );\n expect(personal.requests.flatMap((request) => request.bindingId ?? [])).toEqual([\n 'personal_gmail',\n ]);\n expect(personalResult).toMatchObject({\n ok: true,\n output: { results: [{ account: PERSONAL_ACCOUNT }] },\n });\n\n const work = await compiledFixture();\n const workResult = await executeTool(\n work.artifact,\n 'search_messages',\n { accounts: [WORK_ACCOUNT], query: 'is:unread' },\n work.deps,\n );\n expect(work.requests.flatMap((request) => request.bindingId ?? [])).toEqual(['work_gmail']);\n expect(workResult).toMatchObject({\n ok: true,\n output: { results: [{ account: WORK_ACCOUNT }] },\n });\n\n const both = await compiledFixture();\n const bothResult = await executeTool(\n both.artifact,\n 'search_messages',\n { accounts: [PERSONAL_ACCOUNT, WORK_ACCOUNT], query: 'is:unread' },\n both.deps,\n );\n expect(both.requests.flatMap((request) => request.bindingId ?? [])).toEqual([\n 'personal_gmail',\n 'work_gmail',\n ]);\n expect(bothResult).toMatchObject({\n ok: true,\n output: {\n results: [{ account: PERSONAL_ACCOUNT }, { account: WORK_ACCOUNT }],\n },\n });\n });\n\n it('prepares the exact selected write binding, dispatches only after confirmation, and rejects replay drift', async () => {\n const setup = await compiledFixture();\n const prepared = await prepareToolForConfirmation(\n setup.artifact,\n 'trash_message',\n { accounts: [WORK_ACCOUNT], message_id: 'fixture-message' },\n setup.deps,\n );\n expect(isConfirmationRequired(prepared)).toBe(true);\n if (!isConfirmationRequired(prepared)) throw new Error('expected confirmation');\n expect(setup.requests).toHaveLength(0);\n expect(prepared.review.action).toMatchObject({\n bindingId: 'work_gmail',\n connectionId: 'work_gmail',\n operation: 'trash_message',\n });\n\n await expect(\n executePreparedTool(setup.artifact, prepared.continuation, setup.deps),\n ).resolves.toMatchObject({ status: 'completed' });\n expect(setup.requests.flatMap((request) => request.bindingId ?? [])).toEqual(['work_gmail']);\n\n const personalPrepared = structuredClone(prepared.continuation);\n if (personalPrepared.reviewedAction) {\n (personalPrepared.reviewedAction as { bindingId?: string }).bindingId = 'personal_gmail';\n }\n await expect(\n executePreparedTool(setup.artifact, personalPrepared, setup.deps),\n ).resolves.toMatchObject({ status: 'failed' });\n });\n\n it('makes every mutation confirmable and keeps the personal-email skill concise and safe', async () => {\n const manifest = await app.toManifest();\n const catalog = app.toConnectorCatalog();\n const actionNames = new Set(\n catalog?.connectors.flatMap((connector) =>\n Object.entries(connector.operations)\n .filter(([, operation]) => operation.type === 'action')\n .map(([name]) => name),\n ),\n );\n for (const tool of manifest.tools.filter((candidate) => actionNames.has(candidate.name))) {\n expect(tool.annotations?.confirm, tool.name).toBe(true);\n }\n\n const skill = readFileSync(join(here, '../skills/personal-email-automation/SKILL.md'), 'utf8');\n expect(skill).toMatch(/^---\\nname: personal-email-automation\\ndescription:/);\n expect(skill.split('\\n').length).toBeLessThan(140);\n expect(skill).toContain('accounts');\n expect(skill).toMatch(/draft/i);\n expect(skill).toMatch(/confirm/i);\n expect(skill).toMatch(/permanent delete/i);\n expect(skill).not.toMatch(/client[_-]?secret|access[_-]?token/i);\n });\n});\n" },
|
|
71
72
|
{ relPath: "examples/gmail-multi-account/vitest.config.ts", content: "import { defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n resolve: {\n alias: {\n '@noodleseed/one': new URL('../../packages/authoring/src/index.ts', import.meta.url).pathname,\n '@noodle-borg/capabilities': new URL(\n '../../packages/capabilities/src/index.ts',\n import.meta.url,\n ).pathname,\n '@noodle-borg/compiler': new URL('../../packages/compiler/src/index.ts', import.meta.url)\n .pathname,\n '@noodle-borg/compute': new URL('../../packages/compute/src/index.ts', import.meta.url)\n .pathname,\n '@noodle-borg/connector-defs': new URL(\n '../../packages/connector-defs/src/index.ts',\n import.meta.url,\n ).pathname,\n '@noodle-borg/connector-http': new URL(\n '../../packages/connector-http/src/index.ts',\n import.meta.url,\n ).pathname,\n '@noodle-borg/runtime': new URL('../../packages/runtime/src/index.ts', import.meta.url)\n .pathname,\n },\n },\n test: { include: ['test/**/*.test.ts'] },\n});\n" },
|
|
73
|
+
{ relPath: "examples/google-bigquery/README.md", content: "# Google BigQuery — keyless deployed-server authentication\n\nThis flagship owns the Google Workload Identity Federation capability slot: a deployed Noodle Seed server\ncalls BigQuery with hourly short-lived Google credentials and never uploads or stores a service-account JSON\nkey. The same `googleWorkloadIdentity(...)` connection works for other Google REST APIs when their connector\noperations declare the exact Google OAuth scopes and `https://*.googleapis.com` audience they require.\n\nThe developer authors only TypeScript:\n\n```ts\nconst google = connection(\n 'customer_google_cloud',\n googleWorkloadIdentity({\n provider: variable('GOOGLE_WIF_PROVIDER'),\n access: {\n kind: 'serviceAccountImpersonation',\n serviceAccount: variable('GOOGLE_SERVICE_ACCOUNT'),\n },\n }),\n);\n\nuse: {\n bigquery: bind(bigquery, { profile: 'google_wif', connection: google }),\n}\n```\n\n`GOOGLE_WIF_PROVIDER` is the non-secret provider resource\n`projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL/providers/PROVIDER`.\n`GOOGLE_SERVICE_ACCOUNT` is the non-secret email of the customer service account that Google will\nimpersonate. The private key does not exist in Noodle.\n\n## Complete operator setup\n\nAfter creating or joining the target Noodle organization, prepare the environment's stable workload identity.\nThis can run before the first deploy and prints copyable Google Cloud and managed-variable commands:\n\n```sh\nnoodle auth google prepare \\\n --org acme \\\n --app google-bigquery \\\n --env prod \\\n --project-number 123456789012 \\\n --pool noodle-prod \\\n --provider google-bigquery \\\n --service-account bigquery-reader@customer-project.iam.gserviceaccount.com\n```\n\nThe command asks for every Google-specific value Noodle cannot infer, creates no Google resources itself,\nand prints:\n\n- the required API-enablement, workload-pool, and OIDC-provider commands;\n- the exact issuer, attribute mapping, tenant condition, and federated principal URI;\n- the least-privilege `roles/iam.workloadIdentityUser` service-account binding;\n- the exact `noodle variables set ... --runtime cloud` commands.\n\nIn the customer project, grant the service account only the data permissions the server needs. For this\nread-only example, use dataset-level `roles/bigquery.dataViewer` and project-level\n`roles/bigquery.jobUser` so it can create query jobs; do not grant project Owner or Editor.\n\nAfter applying the printed Google and Noodle commands, deploy the authored server and validate a real token\nexchange without running the `query_bigquery` business tool:\n\n```sh\nnoodle deploy --access owner-only\nnoodle auth google doctor --org acme --app google-bigquery --env prod\n```\n\nThe broker signs a one-hour RS256 OIDC subject token with the platform signing key, exchanges it only at\nGoogle STS, optionally calls IAM Credentials `generateAccessToken`, and caches the final binding-scoped token\nuntil five minutes before expiry. Revocation immediately stops Noodle from issuing or reusing credentials:\n\n```sh\nnoodle auth google revoke --org acme --app google-bigquery --env prod\n```\n\nAn already-issued Google token can remain usable until its short expiry. Remove the customer-side IAM\nprincipal binding as defense in depth. Re-preparing after revocation creates a new subject, so the old\nGoogle IAM binding cannot silently become valid again.\n\n## Direct federation instead of impersonation\n\nWhere the target Google API supports direct federated principals, omit the service account:\n\n```ts\ngoogleWorkloadIdentity({\n provider: variable('GOOGLE_WIF_PROVIDER'),\n access: { kind: 'direct' },\n});\n```\n\nRun `noodle auth google prepare` without `--service-account`, then grant the printed federated principal the\nleast-privilege role directly on the target resource.\n\n## Local validation\n\nCompilation and tests need no Google credentials:\n\n```sh\nnoodle validate\nnoodle test\n```\n" },
|
|
74
|
+
{ relPath: "examples/google-bigquery/noodle.json", content: "{\n \"entrypoint\": \"src/server.ts\",\n \"name\": \"google-bigquery\"\n}\n" },
|
|
75
|
+
{ relPath: "examples/google-bigquery/package.json", content: "{\n \"name\": \"google-bigquery\",\n \"version\": \"0.1.0\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"test\": \"vitest run\",\n \"validate\": \"noodle validate\",\n \"dev\": \"noodle dev\",\n \"deploy\": \"noodle deploy\"\n },\n \"devDependencies\": {\n \"@noodleseed/one\": \"latest\",\n \"vitest\": \"latest\"\n }\n}\n" },
|
|
76
|
+
{ relPath: "examples/google-bigquery/src/server.ts", content: "import {\n annotations,\n bind,\n connection,\n connector,\n googleWorkloadIdentity,\n server,\n tool,\n variable,\n z,\n} from '@noodleseed/one';\n\nconst BIGQUERY_ORIGIN = 'https://bigquery.googleapis.com';\nconst BIGQUERY_READONLY = 'https://www.googleapis.com/auth/bigquery.readonly';\n\nconst bigquery = connector('google_bigquery')\n .version('1.0.0')\n .http({\n baseUrl: BIGQUERY_ORIGIN,\n allowedOrigins: [BIGQUERY_ORIGIN],\n credentialProfiles: { google_wif: { kind: 'bearer' } },\n operations: {\n query: {\n type: 'read',\n method: 'POST',\n path: '/bigquery/v2/projects/${args.project_id}/queries',\n input: z.object({\n project_id: z.string().min(1),\n query: z.string().min(1),\n max_results: z.number().int().min(1).max(1000).optional(),\n }),\n output: z.object({\n job_complete: z.boolean().optional(),\n schema: z.unknown().optional(),\n rows: z.array(z.unknown()).optional(),\n total_rows: z.string().optional(),\n }),\n request: {\n query: '${args.query}',\n useLegacySql: false,\n maxResults: '${args.max_results}',\n },\n response: {\n job_complete: '${response.jobComplete}',\n schema: '${response.schema}',\n rows: '${response.rows}',\n total_rows: '${response.totalRows}',\n },\n credentials: {\n profiles: ['google_wif'],\n scopes: [BIGQUERY_READONLY],\n audience: BIGQUERY_ORIGIN,\n },\n },\n },\n });\n\nconst google = connection(\n 'customer_google_cloud',\n googleWorkloadIdentity({\n provider: variable('GOOGLE_WIF_PROVIDER'),\n access: {\n kind: 'serviceAccountImpersonation',\n serviceAccount: variable('GOOGLE_SERVICE_ACCOUNT'),\n },\n }),\n);\n\nexport default server(\n 'google_bigquery',\n {\n title: 'Google BigQuery Reader',\n version: '1.0.0',\n use: {\n bigquery: bind(bigquery, { profile: 'google_wif', connection: google }),\n },\n instructions:\n 'Run read-only GoogleSQL queries in the configured customer BigQuery project. Never invent project, dataset, or table names.',\n },\n [\n tool('query_bigquery', {\n title: 'Query BigQuery',\n description:\n 'Run one read-only GoogleSQL query in an explicitly named Google Cloud project and return the typed BigQuery rows.',\n input: z.object({\n project_id: z.string().min(1).meta({ title: 'Google Cloud project' }),\n query: z.string().min(1).meta({ title: 'GoogleSQL query' }),\n max_results: z.number().int().min(1).max(1000).optional(),\n }),\n output: z.object({\n job_complete: z.boolean(),\n schema: z.unknown().optional(),\n rows: z.array(z.unknown()),\n total_rows: z.string().optional(),\n }),\n annotations: annotations.readOnly(),\n fulfil({ input, connectors }) {\n const result = connectors.bigquery.query({\n project_id: input.project_id,\n query: input.query,\n max_results: input.max_results,\n });\n return {\n job_complete: result.job_complete,\n schema: result.schema.optional(),\n rows: result.rows,\n total_rows: result.total_rows.optional(),\n };\n },\n }),\n ],\n);\n" },
|
|
77
|
+
{ relPath: "examples/google-bigquery/test/server.test.ts", content: "import { describe, expect, it } from 'vitest';\nimport app from '../src/server.js';\n\ndescribe('Google BigQuery workload-identity flagship', () => {\n it('binds a read-only Google operation to keyless service-account impersonation', async () => {\n const manifest = await app.toManifest();\n expect(manifest.connectors?.bigquery).toMatchObject({\n id: 'google_bigquery',\n binding: {\n profile: 'google_wif',\n connection: {\n id: 'customer_google_cloud',\n source: {\n kind: 'googleWorkloadIdentity',\n provider: '${env.GOOGLE_WIF_PROVIDER}',\n access: {\n kind: 'serviceAccountImpersonation',\n serviceAccount: '${env.GOOGLE_SERVICE_ACCOUNT}',\n },\n },\n },\n },\n });\n expect(app.toConnectorCatalog()).toMatchObject({\n connectors: [\n {\n credentialProfiles: { google_wif: { kind: 'bearer' } },\n operations: {\n query: {\n credentials: {\n profiles: ['google_wif'],\n scopes: ['https://www.googleapis.com/auth/bigquery.readonly'],\n audience: 'https://bigquery.googleapis.com',\n },\n },\n },\n },\n ],\n });\n expect(JSON.stringify({ manifest, catalog: app.toConnectorCatalog() })).not.toMatch(\n /private[_-]?key|client[_-]?secret|access[_-]?token/i,\n );\n });\n});\n" },
|
|
78
|
+
{ relPath: "examples/google-bigquery/vitest.config.ts", content: "import { defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n resolve: {\n alias: {\n '@noodleseed/one': new URL('../../packages/authoring/src/index.ts', import.meta.url).pathname,\n '@noodle-borg/capabilities': new URL(\n '../../packages/capabilities/src/index.ts',\n import.meta.url,\n ).pathname,\n '@noodle-borg/compiler': new URL('../../packages/compiler/src/index.ts', import.meta.url)\n .pathname,\n '@noodle-borg/connector-defs': new URL(\n '../../packages/connector-defs/src/index.ts',\n import.meta.url,\n ).pathname,\n },\n },\n test: { include: ['test/**/*.test.ts'] },\n});\n" },
|
|
72
79
|
{ relPath: "examples/hello/README.md", content: "# hello — minimal TypeScript quickstart\n\nThe smallest deployable Noodle app: a single `greet` tool authored in TypeScript with no\nconnectors, secrets, flows, widgets, or handoff policy. It still uses the current server options form\nso new authors see where server-level branding belongs. Use it to smoke the author loop\n(`noodle validate` / `noodle dev`) or a first deploy.\n\nWhen an installed Noodle Developer plugin drives this example, its skill runs these logical\n`noodle` commands through the plugin-managed, version-pinned launcher and isolated host profile.\nDo not install or update a global CLI: the coding agent writes and tests this source while Noodle\nguides and operates the validate, preview, deploy, inspect, and debug workflow.\n\n```sh\nnoodle dev examples/hello/src/server.ts --app hello\nnoodle deploy examples/hello/src/server.ts --org acme --app hello\n```\n\n`noodle export manifest examples/hello/src/server.ts` compiles the same entrypoint locally and prints\nthe portable, vendor-neutral manifest JSON — the eject path: your `server.ts` plus this manifest is\nthe whole app, yours to read, diff, and keep.\n\nIt is also the fixture for `pnpm smoke:dev` and the e2e harness, so keep its tool surface stable.\n" },
|
|
73
80
|
{ relPath: "examples/hello/noodle.json", content: "{\n \"entrypoint\": \"src/server.ts\",\n \"name\": \"hello\",\n \"template\": \"hello\"\n}\n" },
|
|
74
81
|
{ relPath: "examples/hello/package.json", content: "{\n \"name\": \"hello\",\n \"version\": \"0.1.0\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": {\n \"test\": \"vitest run\",\n \"validate\": \"noodle validate\",\n \"dev\": \"noodle dev\",\n \"deploy\": \"noodle deploy\"\n },\n \"devDependencies\": {\n \"@noodleseed/one\": \"latest\",\n \"vitest\": \"latest\"\n }\n}\n" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example-files.js","sourceRoot":"","sources":["../../src/generated/example-files.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,kFAAkF;AAClF,iGAAiG;AAQjG,uGAAuG;AACvG,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,OAAO;IACP,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,YAAY;IACZ,aAAa;IACb,eAAe;IACf,qBAAqB;
|
|
1
|
+
{"version":3,"file":"example-files.js","sourceRoot":"","sources":["../../src/generated/example-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../../src/generated/surface.ts"],"names":[],"mappings":"AAIA,qGAAqG;AACrG,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EA2DzC,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,
|
|
1
|
+
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../../src/generated/surface.ts"],"names":[],"mappings":"AAIA,qGAAqG;AACrG,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EA2DzC,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAuBxC,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAqDhD,CAAC;AAEF,oGAAoG;AACpG,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAaxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../src/generated/surface.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,iGAAiG;AAEjG,qGAAqG;AACrG,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,MAAM;IACN,SAAS;IACT,UAAU;IACV,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,SAAS;IACT,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,eAAe;IACf,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,UAAU;IACV,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,MAAM;IACN,mBAAmB;IACnB,YAAY;IACZ,WAAW;IACX,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,UAAU;IACV,MAAM;IACN,GAAG;CACJ,CAAC;AAEF,iGAAiG;AACjG,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,0BAA0B;IAC1B,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,8BAA8B;IAC9B,6BAA6B;IAC7B,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,4BAA4B;IAC5B,0BAA0B;IAC1B,2BAA2B;IAC3B,mBAAmB;IACnB,wBAAwB;IACxB,oBAAoB;IACpB,kBAAkB;IAClB,wBAAwB;IACxB,0BAA0B;IAC1B,kBAAkB;IAClB,qBAAqB;IACrB,4BAA4B;IAC5B,uBAAuB;IACvB,wBAAwB;IACxB,6BAA6B;IAC7B,uBAAuB;IACvB,6BAA6B;IAC7B,eAAe;IACf,gCAAgC;IAChC,oBAAoB;IACpB,yBAAyB;IACzB,0BAA0B;IAC1B,mBAAmB;IACnB,4BAA4B;IAC5B,gCAAgC;IAChC,2BAA2B;IAC3B,8BAA8B;IAC9B,wBAAwB;IACxB,cAAc;CACf,CAAC;AAEF,oGAAoG;AACpG,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,aAAa;IACb,aAAa;IACb,cAAc;IACd,WAAW;IACX,aAAa;IACb,uBAAuB;IACvB,iBAAiB;IACjB,wBAAwB;IACxB,uBAAuB;IACvB,oBAAoB;IACpB,YAAY;IACZ,YAAY;CACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"surface.js","sourceRoot":"","sources":["../../src/generated/surface.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAC7E,iGAAiG;AAEjG,qGAAqG;AACrG,MAAM,CAAC,MAAM,YAAY,GAAsB;IAC7C,MAAM;IACN,SAAS;IACT,UAAU;IACV,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,SAAS;IACT,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,eAAe;IACf,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,UAAU;IACV,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,MAAM;IACN,mBAAmB;IACnB,YAAY;IACZ,WAAW;IACX,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,gBAAgB;IAChB,wBAAwB;IACxB,gBAAgB;IAChB,eAAe;IACf,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,UAAU;IACV,MAAM;IACN,GAAG;CACJ,CAAC;AAEF,iGAAiG;AACjG,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,0BAA0B;IAC1B,kBAAkB;IAClB,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,8BAA8B;IAC9B,6BAA6B;IAC7B,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,4BAA4B;IAC5B,0BAA0B;IAC1B,2BAA2B;IAC3B,mBAAmB;IACnB,wBAAwB;IACxB,oBAAoB;IACpB,kBAAkB;IAClB,wBAAwB;IACxB,0BAA0B;IAC1B,kBAAkB;IAClB,qBAAqB;IACrB,4BAA4B;IAC5B,uBAAuB;IACvB,wBAAwB;IACxB,6BAA6B;IAC7B,uBAAuB;IACvB,6BAA6B;IAC7B,eAAe;IACf,gCAAgC;IAChC,oBAAoB;IACpB,yBAAyB;IACzB,0BAA0B;IAC1B,mBAAmB;IACnB,4BAA4B;IAC5B,gCAAgC;IAChC,2BAA2B;IAC3B,8BAA8B;IAC9B,wBAAwB;IACxB,cAAc;CACf,CAAC;AAEF,oGAAoG;AACpG,MAAM,CAAC,MAAM,WAAW,GAAsB;IAC5C,aAAa;IACb,aAAa;IACb,cAAc;IACd,WAAW;IACX,aAAa;IACb,uBAAuB;IACvB,iBAAiB;IACjB,wBAAwB;IACxB,uBAAuB;IACvB,oBAAoB;IACpB,YAAY;IACZ,YAAY;CACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-authoring-refs.d.ts","sourceRoot":"","sources":["../src/skill-authoring-refs.ts"],"names":[],"mappings":"AAgBA,wBAAgB,gCAAgC,IAAI,MAAM,CAuUzD;AAWD,wBAAgB,6BAA6B,IAAI,MAAM,CAoPtD;
|
|
1
|
+
{"version":3,"file":"skill-authoring-refs.d.ts","sourceRoot":"","sources":["../src/skill-authoring-refs.ts"],"names":[],"mappings":"AAgBA,wBAAgB,gCAAgC,IAAI,MAAM,CAuUzD;AAWD,wBAAgB,6BAA6B,IAAI,MAAM,CAoPtD;AAmDD,wBAAgB,uBAAuB,IAAI,MAAM,CA0DhD"}
|
|
@@ -57,7 +57,7 @@ export function renderAuthoringWorkflowReference() {
|
|
|
57
57
|
'',
|
|
58
58
|
'HTTP connector auth variants: `bearer` (`{ kind: "bearer", secret: secret("API_TOKEN") }`), `apiKey` (`{ kind: "apiKey", header: "X-API-Key", secret: secret("API_KEY") }`), `clientCredentials`, `delegatedOAuth`, `delegatedSessionCookie`, and `delegatedTokenExchange` (per-user calls to your own API — see "Delegated downstream auth" below). Use managed `secret(...)` / `variable(...)` refs for all values that differ by org/app/env.',
|
|
59
59
|
'',
|
|
60
|
-
'When one connector needs independently selectable accounts, declare catalog `credentialProfiles` plus each operation’s accepted `credentials.profiles`, then bind each `server.use` alias with `bind(connector, { profile, connection: connection("logical_id", managedSecret(secret("NAME"), { scopes, audience })) })`. The alias is the stable account boundary; never put provider account ids, labels, or credential values in it. `gmailConnector()` is the curated Gmail catalog helper; reuse it under independent aliases and accept canonical `accounts` arrays in tools (one account for writes, or an explicitly ordered supported combination for reads). See the bundled `gmail-multi-account` flagship. Bound managed secrets are supported by hosted execution. `externalExchange()` is runnable only when the deployment operator injects an exact HTTPS provider endpoint/origin/audience and durable shared subject-pin store through service ports; Noodle sends a short-lived platform-signed deployment workload assertion and accepts only a bounded bearer response. Provider implementations must consume assertion replay ids through durable shared atomic storage across instances and restarts. There is intentionally no hosted enrollment or provider CRUD surface yet. The provider wire contract is public, but its conformance kit is workspace/source-only and is not an installable npm package. Bound `clientCredentials(...)` remains fail-closed until its provider slice lands.',
|
|
60
|
+
'When one connector needs independently selectable accounts, declare catalog `credentialProfiles` plus each operation’s accepted `credentials.profiles`, then bind each `server.use` alias with `bind(connector, { profile, connection: connection("logical_id", managedSecret(secret("NAME"), { scopes, audience })) })`. The alias is the stable account boundary; never put provider account ids, labels, or credential values in it. `gmailConnector()` is the curated Gmail catalog helper; reuse it under independent aliases and accept canonical `accounts` arrays in tools (one account for writes, or an explicitly ordered supported combination for reads). See the bundled `gmail-multi-account` flagship. Bound managed secrets are supported by hosted execution. For deployed-server access to Google APIs, use `googleWorkloadIdentity({ provider: variable("GOOGLE_WIF_PROVIDER"), access: { kind: "direct" } })`, or add `serviceAccountImpersonation` with a managed service-account email. This is keyless Google Workload Identity Federation: exact Google scopes/audience come from the catalog operation, while `noodle auth google prepare|status|doctor|revoke` owns operator lifecycle. See the bundled `google-bigquery` flagship. `externalExchange()` is runnable only when the deployment operator injects an exact HTTPS provider endpoint/origin/audience and durable shared subject-pin store through service ports; Noodle sends a short-lived platform-signed deployment workload assertion and accepts only a bounded bearer response. Provider implementations must consume assertion replay ids through durable shared atomic storage across instances and restarts. There is intentionally no hosted enrollment or provider CRUD surface yet. The provider wire contract is public, but its conformance kit is workspace/source-only and is not an installable npm package. Bound `clientCredentials(...)` remains fail-closed until its provider slice lands.',
|
|
61
61
|
'',
|
|
62
62
|
'## HTTP connector example (full server)',
|
|
63
63
|
'',
|
|
@@ -629,6 +629,10 @@ const FLAGSHIP_EXAMPLES = [
|
|
|
629
629
|
'gmail-multi-account',
|
|
630
630
|
'One curated Gmail connector reused by two account bindings, canonical account arrays, exact mutation confirmation, and an accompanying personal-automation skill.',
|
|
631
631
|
],
|
|
632
|
+
[
|
|
633
|
+
'google-bigquery',
|
|
634
|
+
'Keyless Google Workload Identity Federation with optional service-account impersonation, a BigQuery REST connector, and complete developer/operator setup.',
|
|
635
|
+
],
|
|
632
636
|
['sharepoint', 'Microsoft SharePoint delegated Microsoft Entra auth and Graph tools.'],
|
|
633
637
|
[
|
|
634
638
|
'internal-ops-demo',
|
|
@@ -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,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,+EAA+E;AAC/E,6CAA6C;AAC7C,EAAE;AACF,iGAAiG;AACjG,qGAAqG;AACrG,gGAAgG;AAChG,+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,wCAAwC;QACxC,mEAAmE;QACnE,8BAA8B;QAC9B,sBAAsB;QACtB,6BAA6B;QAC7B,SAAS;QACT,yBAAyB;QACzB,sBAAsB;QACtB,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,kbAAkb;QAClb,EAAE;QACF,
|
|
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,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,+EAA+E;AAC/E,6CAA6C;AAC7C,EAAE;AACF,iGAAiG;AACjG,qGAAqG;AACrG,gGAAgG;AAChG,+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,wCAAwC;QACxC,mEAAmE;QACnE,8BAA8B;QAC9B,sBAAsB;QACtB,6BAA6B;QAC7B,SAAS;QACT,yBAAyB;QACzB,sBAAsB;QACtB,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,kbAAkb;QAClb,EAAE;QACF,w4DAAw4D;QACx4D,EAAE;QACF,yCAAyC;QACzC,EAAE;QACF,yaAAya;QACza,EAAE;QACF,OAAO;QACP,iFAAiF;QACjF,EAAE;QACF,sDAAsD;QACtD,sCAAsC;QACtC,gDAAgD;QAChD,0DAA0D;QAC1D,iBAAiB;QACjB,sBAAsB;QACtB,qBAAqB;QACrB,sBAAsB;QACtB,2BAA2B;QAC3B,yBAAyB;QACzB,+CAA+C;QAC/C,0EAA0E;QAC1E,qFAAqF;QACrF,QAAQ;QACR,sBAAsB;QACtB,uBAAuB;QACvB,uBAAuB;QACvB,yBAAyB;QACzB,uEAAuE;QACvE,oDAAoD;QACpD,8EAA8E;QAC9E,kDAAkD;QAClD,QAAQ;QACR,MAAM;QACN,KAAK;QACL,EAAE;QACF,0FAA0F;QAC1F,2BAA2B;QAC3B,uDAAuD;QACvD,6CAA6C;QAC7C,wEAAwE;QACxE,0CAA0C;QAC1C,8EAA8E;QAC9E,wDAAwD;QACxD,QAAQ;QACR,OAAO;QACP,yBAAyB;QACzB,2DAA2D;QAC3D,qEAAqE;QACrE,kDAAkD;QAClD,0CAA0C;QAC1C,0GAA0G;QAC1G,+CAA+C;QAC/C,QAAQ;QACR,OAAO;QACP,KAAK;QACL,KAAK;QACL,EAAE;QACF,koBAAkoB;QACloB,EAAE;QACF,+vBAA+vB;QAC/vB,EAAE;QACF,oEAAoE;QACpE,EAAE;QACF,+NAA+N;QAC/N,EAAE;QACF,mVAAmV;QACnV,wQAAwQ;QACxQ,sGAAsG;QACtG,EAAE;QACF,sCAAsC;QACtC,EAAE;QACF,OAAO;QACP,SAAS;QACT,mCAAmC;QACnC,sGAAsG;QACtG,kDAAkD;QAClD,wDAAwD;QACxD,+CAA+C;QAC/C,mGAAmG;QACnG,+EAA+E;QAC/E,GAAG;QACH,KAAK;QACL,EAAE;QACF,2PAA2P;QAC3P,EAAE;QACF,iDAAiD;QACjD,EAAE;QACF,qMAAqM;QACrM,EAAE;QACF,KAAK;QACL,4DAA4D;QAC5D,kDAAkD;QAClD,yDAAyD;QACzD,2DAA2D;QAC3D,6CAA6C;QAC7C,KAAK;QACL,EAAE;QACF,2gBAA2gB;QAC3gB,EAAE;QACF,kDAAkD;QAClD,EAAE;QACF,OAAO;QACP,8DAA8D;QAC9D,uDAAuD;QACvD,EAAE;QACF,mGAAmG;QACnG,uFAAuF;QACvF,EAAE;QACF,wEAAwE;QACxE,0EAA0E;QAC1E,yDAAyD;QACzD,mFAAmF;QACnF,2FAA2F;QAC3F,sFAAsF;QACtF,uDAAuD;QACvD,gFAAgF;QAChF,8BAA8B;QAC9B,4GAA4G;QAC5G,OAAO;QACP,0FAA0F;QAC1F,0FAA0F;QAC1F,KAAK;QACL,gGAAgG;QAChG,uGAAuG;QACvG,+FAA+F;QAC/F,GAAG;QACH,KAAK;QACL,EAAE;QACF,2gBAA2gB;QAC3gB,EAAE;QACF,+BAA+B;QAC/B,EAAE;QACF,4RAA4R;QAC5R,EAAE;QACF,4NAA4N;QAC5N,yUAAyU;QACzU,uIAAuI;QACvI,EAAE;QACF,mMAAmM;QACnM,EAAE;QACF,OAAO;QACP,uEAAuE;QACvE,EAAE;QACF,0DAA0D;QAC1D,yCAAyC;QACzC,kDAAkD;QAClD,4DAA4D;QAC5D,iBAAiB;QACjB,qBAAqB;QACrB,qBAAqB;QACrB,sBAAsB;QACtB,uBAAuB;QACvB,yBAAyB;QACzB,+CAA+C;QAC/C,4DAA4D;QAC5D,qDAAqD;QACrD,QAAQ;QACR,mBAAmB;QACnB,uBAAuB;QACvB,uBAAuB;QACvB,kCAAkC;QAClC,4CAA4C;QAC5C,8CAA8C;QAC9C,2CAA2C;QAC3C,QAAQ;QACR,MAAM;QACN,KAAK;QACL,EAAE;QACF,uFAAuF;QACvF,wBAAwB;QACxB,uKAAuK;QACvK,6CAA6C;QAC7C,8FAA8F;QAC9F,0CAA0C;QAC1C,4EAA4E;QAC5E,0CAA0C;QAC1C,QAAQ;QACR,OAAO;QACP,2BAA2B;QAC3B,kFAAkF;QAClF,0CAA0C;QAC1C,4CAA4C;QAC5C,0CAA0C;QAC1C,qEAAqE;QACrE,iCAAiC;QACjC,QAAQ;QACR,OAAO;QACP,KAAK;QACL,KAAK;QACL,EAAE;QACF,mPAAmP;QACnP,EAAE;QACF,uBAAuB;QACvB,EAAE;QACF,wcAAwc;QACxc,EAAE;QACF,OAAO;QACP,YAAY;QACZ,6DAA6D;QAC7D,cAAc;QACd,qFAAqF;QACrF,kDAAkD;QAClD,wDAAwD;QACxD,gCAAgC;QAChC,yCAAyC;QACzC,WAAW;QACX,wFAAwF;QACxF,QAAQ;QACR,MAAM;QACN,IAAI;QACJ,KAAK;QACL,EAAE;QACF,miBAAmiB;QACniB,EAAE;QACF,qCAAqC;QACrC,EAAE;QACF,2MAA2M;QAC3M,EAAE;QACF,OAAO;QACP,4BAA4B;QAC5B,0EAA0E;QAC1E,4DAA4D;QAC5D,iFAAiF;QACjF,oCAAoC;QACpC,6BAA6B;QAC7B,0BAA0B;QAC1B,2DAA2D;QAC3D,iEAAiE;QACjE,SAAS;QACT,2EAA2E;QAC3E,MAAM;QACN,KAAK;QACL,KAAK;QACL,EAAE;QACF,iwEAAiwE;QACjwE,EAAE;QACF,8BAA8B;QAC9B,EAAE;QACF,OAAO;QACP,8EAA8E;QAC9E,4EAA4E;QAC5E,4CAA4C;QAC5C,kDAAkD;QAClD,iDAAiD;QACjD,mCAAmC;QACnC,iGAAiG;QACjG,4EAA4E;QAC5E,MAAM;QACN,KAAK;QACL,KAAK;QACL,EAAE;QACF,uUAAuU;QACvU,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,uBAAuB;QACvB,EAAE;QACF,wWAAwW;QACxW,EAAE;QACF,eAAe;QACf,EAAE;QACF,+SAA+S;KAChT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,kGAAkG;AAClG,EAAE;AACF,+FAA+F;AAC/F,oGAAoG;AACpG,oGAAoG;AACpG,2EAA2E;AAC3E,+EAA+E;AAE/E,MAAM,UAAU,6BAA6B;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACrF,OAAO;QACL,wBAAwB;QACxB,EAAE;QACF,aAAa;QACb,EAAE;QACF,mBAAmB;QACnB,sBAAsB;QACtB,wBAAwB;QACxB,wCAAwC;QACxC,0CAA0C;QAC1C,+BAA+B;QAC/B,4BAA4B;QAC5B,EAAE;QACF,oBAAoB;QACpB,EAAE;QACF,uVAAuV;QACvV,EAAE;QACF,0BAA0B;QAC1B,EAAE;QACF,uRAAuR;QACvR,EAAE;QACF,uWAAuW;QACvW,EAAE;QACF,kgBAAkgB;QAClgB,EAAE;QACF,kZAAkZ;QAClZ,EAAE;QACF,wcAAwc;QACxc,EAAE;QACF,uBAAuB;QACvB,EAAE;QACF,sIAAsI;QACtI,EAAE;QACF,OAAO,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC;QACtC,EAAE;QACF,m1DAAm1D;QACn1D,EAAE;QACF,yBAAyB;QACzB,EAAE;QACF,mOAAmO;QACnO,EAAE;QACF,2BAA2B;QAC3B,EAAE;QACF,gZAAgZ;QAChZ,EAAE;QACF,QAAQ;QACR,oCAAoC;QACpC,0DAA0D;QAC1D,0IAA0I;QAC1I,EAAE;QACF,qFAAqF;QACrF,mJAAmJ;QACnJ,wCAAwC;QACxC,EAAE;QACF,sBAAsB;QACtB,+BAA+B;QAC/B,2BAA2B;QAC3B,4BAA4B;QAC5B,kCAAkC;QAClC,IAAI;QACJ,EAAE;QACF,yCAAyC;QACzC,yFAAyF;QACzF,uFAAuF;QACvF,qCAAqC;QACrC,2CAA2C;QAC3C,yDAAyD;QACzD,uDAAuD;QACvD,gEAAgE;QAChE,sGAAsG;QACtG,qGAAqG;QACrG,oCAAoC;QACpC,iDAAiD;QACjD,EAAE;QACF,qBAAqB;QACrB,0CAA0C;QAC1C,+BAA+B;QAC/B,mFAAmF;QACnF,6GAA6G;QAC7G,SAAS;QACT,kEAAkE;QAClE,EAAE;QACF,kCAAkC;QAClC,gFAAgF;QAChF,mCAAmC;QACnC,oGAAoG;QACpG,OAAO;QACP,sCAAsC;QACtC,iHAAiH;QACjH,OAAO;QACP,KAAK;QACL,EAAE;QACF,YAAY;QACZ,kGAAkG;QAClG,4IAA4I;QAC5I,8BAA8B;QAC9B,oGAAoG;QACpG,wEAAwE;QACxE,4BAA4B;QAC5B,kGAAkG;QAClG,6DAA6D;QAC7D,2DAA2D;QAC3D,+DAA+D;QAC/D,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,6FAA6F;QAC7F,mBAAmB;QACnB,wFAAwF;QACxF,+BAA+B;QAC/B,SAAS;QACT,qBAAqB;QACrB,iBAAiB;QACjB,0DAA0D;QAC1D,2BAA2B;QAC3B,iBAAiB;QACjB,oBAAoB;QACpB,wBAAwB;QACxB,eAAe;QACf,cAAc;QACd,MAAM;QACN,GAAG;QACH,KAAK;QACL,EAAE;QACF,6BAA6B;QAC7B,EAAE;QACF,2bAA2b;QAC3b,EAAE;QACF,OAAO;QACP,iEAAiE;QACjE,EAAE;QACF,gGAAgG;QAChG,2CAA2C;QAC3C,6DAA6D;QAC7D,EAAE;QACF,wBAAwB;QACxB,aAAa;QACb,KAAK;QACL,sBAAsB;QACtB,uBAAuB;QACvB,yGAAyG;QACzG,kEAAkE;QAClE,MAAM;QACN,KAAK;QACL,0BAA0B;QAC1B,6EAA6E;QAC7E,8FAA8F;QAC9F,4CAA4C;QAC5C,mEAAmE;QACnE,0BAA0B;QAC1B,+BAA+B;QAC/B,2BAA2B;QAC3B,4BAA4B;QAC5B,kCAAkC;QAClC,WAAW;QACX,iCAAiC;QACjC,mCAAmC;QACnC,+BAA+B;QAC/B,oBAAoB;QACpB,mDAAmD;QACnD,WAAW;QACX,kCAAkC;QAClC,kEAAkE;QAClE,6EAA6E;QAC7E,6CAA6C;QAC7C,+EAA+E;QAC/E,cAAc;QACd,yDAAyD;QACzD,mDAAmD;QACnD,gGAAgG;QAChG,yFAAyF;QACzF,UAAU;QACV,SAAS;QACT,kGAAkG;QAClG,2BAA2B;QAC3B,4BAA4B;QAC5B,6DAA6D;QAC7D,gGAAgG;QAChG,4DAA4D;QAC5D,yEAAyE;QACzE,4FAA4F;QAC5F,iCAAiC;QACjC,wDAAwD;QACxD,2BAA2B;QAC3B,mDAAmD;QACnD,WAAW;QACX,SAAS;QACT,MAAM;QACN,IAAI;QACJ,KAAK;QACL,EAAE;QACF,yCAAyC;QACzC,EAAE;QACF,2KAA2K;QAC3K,EAAE;QACF,yHAAyH;QACzH,4TAA4T;QAC5T,0FAA0F;QAC1F,EAAE;QACF,qXAAqX;QACrX,EAAE;QACF,sbAAsb;QACtb,EAAE;QACF,odAAod;QACpd,EAAE;QACF,oDAAoD;QACpD,EAAE;QACF,2PAA2P;QAC3P,EAAE;QACF,OAAO;QACP,iEAAiE;QACjE,EAAE;QACF,8EAA8E;QAC9E,oBAAoB;QACpB,wEAAwE;QACxE,0CAA0C;QAC1C,6CAA6C;QAC7C,wBAAwB;QACxB,2FAA2F;QAC3F,SAAS;QACT,gIAAgI;QAChI,OAAO;QACP,mBAAmB;QACnB,4DAA4D;QAC5D,0CAA0C;QAC1C,0CAA0C;QAC1C,iGAAiG;QACjG,6HAA6H;QAC7H,OAAO;QACP,KAAK;QACL,KAAK;QACL,EAAE;QACF,oKAAoK;QACpK,EAAE;QACF,gCAAgC;QAChC,EAAE;QACF,mSAAmS;QACnS,EAAE;QACF,6BAA6B;QAC7B,EAAE;QACF,kNAAkN;KACnN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,+EAA+E;AAC/E,mEAAmE;AACnE,+EAA+E;AAE/E,MAAM,iBAAiB,GAA6C;IAClE,CAAC,OAAO,EAAE,uEAAuE,CAAC;IAClF;QACE,SAAS;QACT,+IAA+I;KAChJ;IACD;QACE,eAAe;QACf,iGAAiG;KAClG;IACD;QACE,gBAAgB;QAChB,8HAA8H;KAC/H;IACD;QACE,YAAY;QACZ,kJAAkJ;KACnJ;IACD;QACE,aAAa;QACb,+IAA+I;KAChJ;IACD;QACE,eAAe;QACf,+EAA+E;KAChF;IACD,CAAC,gBAAgB,EAAE,wEAAwE,CAAC;IAC5F,CAAC,YAAY,EAAE,0DAA0D,CAAC;IAC1E,CAAC,SAAS,EAAE,wEAAwE,CAAC;IACrF;QACE,qBAAqB;QACrB,mKAAmK;KACpK;IACD;QACE,iBAAiB;QACjB,4JAA4J;KAC7J;IACD,CAAC,YAAY,EAAE,sEAAsE,CAAC;IACtF;QACE,mBAAmB;QACnB,+EAA+E;KAChF;IACD,CAAC,gBAAgB,EAAE,2EAA2E,CAAC;CAChG,CAAC;AAEF,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC/C,gGAAgG;IAChG,oGAAoG;IACpG,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAC/C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,CACvE,CAAC;IACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,+EAA+E,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzG,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,CAAC,IAAY,EAAW,EAAE,CAC1C,qBAAqB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,CAAC,CAAC;IAE5F,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAC7E,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;QACnB,KAAK,IAAI,IAAI;QACb,OAAO;QACP,cAAc,IAAI,mBAAmB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE;KAC7E,CACF,CAAC;IACF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAC3E,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,CAC9C,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,EAAE;QACF,0YAA0Y;QAC1Y,EAAE;QACF,yCAAyC;QACzC,EAAE;QACF,+OAA+O;QAC/O,EAAE;QACF,OAAO,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QACrD,EAAE;QACF,0DAA0D;QAC1D,EAAE;QACF,OAAO,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,QAAQ,CAAC;QAC1C,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,yEAAyE;QACzE,EAAE;QACF,OAAO;QACP,oDAAoD;QACpD,EAAE;QACF,wEAAwE;QACxE,mBAAmB;QACnB,4CAA4C;QAC5C,4CAA4C;QAC5C,iDAAiD;QACjD,qEAAqE;QACrE,OAAO;QACP,KAAK;QACL,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-content.d.ts","sourceRoot":"","sources":["../src/skill-content.ts"],"names":[],"mappings":"AAkCA,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-content.d.ts","sourceRoot":"","sources":["../src/skill-content.ts"],"names":[],"mappings":"AAkCA,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC;AA4O3B,wBAAgB,yBAAyB,IAAI,MAAM,CA2ClD;AAMD,wBAAgB,0BAA0B,IAAI,MAAM,CAgCnD;AAMD,wBAAgB,4BAA4B,IAAI,MAAM,CAiDrD;AAMD,wBAAgB,4BAA4B,IAAI,MAAM,CAoBrD;AAMD,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAqBrD,CAAC"}
|
|
@@ -27,7 +27,10 @@ export { REFERENCE_INDEX_LINES, SKILL_DESCRIPTION, SKILL_ROUTES, skillRouterBody
|
|
|
27
27
|
const SDK_GROUPS = [
|
|
28
28
|
{ label: 'Server & tools', members: ['server', 'tool'] },
|
|
29
29
|
{ label: 'Views & assets', members: ['asset', 'annotations'] },
|
|
30
|
-
{
|
|
30
|
+
{
|
|
31
|
+
label: 'Connectors & flows',
|
|
32
|
+
members: ['connector', 'connection', 'bind', 'googleWorkloadIdentity', 'when'],
|
|
33
|
+
},
|
|
31
34
|
{ label: 'Resources & prompts', members: ['resource', 'prompt'] },
|
|
32
35
|
{ label: 'Managed config', members: ['secret', 'variable'] },
|
|
33
36
|
{ label: 'Customer auth', members: ['customerAuth'] },
|
|
@@ -40,6 +43,9 @@ const SDK_NOTES = {
|
|
|
40
43
|
asset: '`asset("./path")` — reference a packaged asset (e.g. an image).',
|
|
41
44
|
annotations: '`annotations(...)` — tool/Apps annotation metadata.',
|
|
42
45
|
connector: '`connector("id").version(...).http({...})` or `.compute(...)` — declarative data connectors.',
|
|
46
|
+
connection: '`connection("logical_id", source)` — stable downstream-account/workload identity used by a connector binding.',
|
|
47
|
+
bind: '`bind(connector, { profile, connection })` — bind one connector alias to an exact credential profile and logical connection.',
|
|
48
|
+
googleWorkloadIdentity: '`googleWorkloadIdentity({ provider: variable(...), access })` — keyless deployed-workload access to Google APIs through WIF; configure with `noodle auth google`.',
|
|
43
49
|
when: '`when(...)` — declarative conditions for recorded flows (no native branching on runtime values).',
|
|
44
50
|
resource: '`resource(name, { ... })` — an MCP resource.',
|
|
45
51
|
prompt: '`prompt(name, { ... })` — an MCP prompt.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-content.js","sourceRoot":"","sources":["../src/skill-content.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iGAAiG;AACjG,+FAA+F;AAC/F,sGAAsG;AACtG,oGAAoG;AACpG,uGAAuG;AACvG,4FAA4F;AAC5F,wEAAwE;AACxE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,qCAAqC,EACrC,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAQ9E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,+EAA+E;AAC/E,2EAA2E;AAC3E,+EAA+E;AAE/E,MAAM,UAAU,GAAiE;IAC/E,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;IACxD,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;IAC9D,
|
|
1
|
+
{"version":3,"file":"skill-content.js","sourceRoot":"","sources":["../src/skill-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,15 @@ type ConnectionSourceShape = {
|
|
|
16
16
|
readonly scopes?: readonly string[];
|
|
17
17
|
readonly audience?: string;
|
|
18
18
|
readonly authMethod?: 'client_secret_basic' | 'client_secret_post';
|
|
19
|
+
} | {
|
|
20
|
+
readonly kind: 'googleWorkloadIdentity';
|
|
21
|
+
readonly provider: string;
|
|
22
|
+
readonly access: {
|
|
23
|
+
readonly kind: 'direct';
|
|
24
|
+
} | {
|
|
25
|
+
readonly kind: 'serviceAccountImpersonation';
|
|
26
|
+
readonly serviceAccount: string;
|
|
27
|
+
};
|
|
19
28
|
};
|
|
20
29
|
/**
|
|
21
30
|
* An opaque credential source created by one of the canonical source factories. The private brand keeps
|
|
@@ -26,6 +35,20 @@ export type ConnectionSource = ConnectionSourceShape & {
|
|
|
26
35
|
};
|
|
27
36
|
/** A deployment-owned external exchange connection. Provider lifecycle stays outside Core. */
|
|
28
37
|
export declare function externalExchange(): ConnectionSource;
|
|
38
|
+
export type GoogleWorkloadIdentityAccess = {
|
|
39
|
+
readonly kind: 'direct';
|
|
40
|
+
} | {
|
|
41
|
+
readonly kind: 'serviceAccountImpersonation';
|
|
42
|
+
readonly serviceAccount: ConfigRef;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* A keyless Google Workload Identity Federation connection. The provider resource and optional
|
|
46
|
+
* service-account identity are non-secret deployment variables; Google credentials are minted by the broker.
|
|
47
|
+
*/
|
|
48
|
+
export declare function googleWorkloadIdentity(options: {
|
|
49
|
+
readonly provider: ConfigRef;
|
|
50
|
+
readonly access: GoogleWorkloadIdentityAccess;
|
|
51
|
+
}): ConnectionSource;
|
|
29
52
|
/** A connection backed by one managed secret reference and any capabilities known for that secret. */
|
|
30
53
|
export declare function managedSecret(secret: ConfigRef, capabilities?: {
|
|
31
54
|
readonly scopes?: readonly string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-types.d.ts","sourceRoot":"","sources":["../src/connection-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,QAAA,MAAM,qBAAqB,EAAE,OAAO,MAA0C,CAAC;AAE/E,iGAAiG;AACjG,KAAK,qBAAqB,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GACrC;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;CACpE,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG;IACrD,QAAQ,CAAC,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;CACxC,CAAC;AAiBF,8FAA8F;AAC9F,wBAAgB,gBAAgB,IAAI,gBAAgB,CAEnD;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,YAAY,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACrF,gBAAgB,CAOlB;AAED,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;CACpE,GAAG,gBAAgB,CAUnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM;IACnE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;CACpC"}
|
|
1
|
+
{"version":3,"file":"connection-types.d.ts","sourceRoot":"","sources":["../src/connection-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,QAAA,MAAM,qBAAqB,EAAE,OAAO,MAA0C,CAAC;AAE/E,iGAAiG;AACjG,KAAK,qBAAqB,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GACrC;IACE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;CACpE,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EACX;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,GAC3B;QACE,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;QAC7C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;KACjC,CAAC;CACP,CAAC;AAEN;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,GAAG;IACrD,QAAQ,CAAC,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC;CACxC,CAAC;AAiBF,8FAA8F;AAC9F,wBAAgB,gBAAgB,IAAI,gBAAgB,CAEnD;AAED,MAAM,MAAM,4BAA4B,GACpC;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IACE,QAAQ,CAAC,IAAI,EAAE,6BAA6B,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;CACpC,CAAC;AAEN;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;CAC/C,GAAG,gBAAgB,CAenB;AAED,sGAAsG;AACtG,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,YAAY,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACrF,gBAAgB,CAOlB;AAED,kGAAkG;AAClG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;CACpE,GAAG,gBAAgB,CAUnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM;IACnE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;CACpC"}
|
|
@@ -11,6 +11,22 @@ function brandConnectionSource(source) {
|
|
|
11
11
|
export function externalExchange() {
|
|
12
12
|
return markConnectionSource({ kind: 'externalExchange' });
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* A keyless Google Workload Identity Federation connection. The provider resource and optional
|
|
16
|
+
* service-account identity are non-secret deployment variables; Google credentials are minted by the broker.
|
|
17
|
+
*/
|
|
18
|
+
export function googleWorkloadIdentity(options) {
|
|
19
|
+
return markConnectionSource({
|
|
20
|
+
kind: 'googleWorkloadIdentity',
|
|
21
|
+
provider: serializeVariableRef(options.provider, 'connection.source.provider'),
|
|
22
|
+
access: options.access.kind === 'direct'
|
|
23
|
+
? { kind: 'direct' }
|
|
24
|
+
: {
|
|
25
|
+
kind: 'serviceAccountImpersonation',
|
|
26
|
+
serviceAccount: serializeVariableRef(options.access.serviceAccount, 'connection.source.access.serviceAccount'),
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
14
30
|
/** A connection backed by one managed secret reference and any capabilities known for that secret. */
|
|
15
31
|
export function managedSecret(secret, capabilities = {}) {
|
|
16
32
|
return markConnectionSource({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-types.js","sourceRoot":"","sources":["../src/connection-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,qBAAqB,GAAkB,MAAM,CAAC,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"connection-types.js","sourceRoot":"","sources":["../src/connection-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEvE,MAAM,qBAAqB,GAAkB,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAyC/E,SAAS,oBAAoB,CAC3B,MAAa;IAEb,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAa;IAEb,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,qBAAqB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,gBAAgB;IAC9B,OAAO,oBAAoB,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC5D,CAAC;AASD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAGtC;IACC,OAAO,oBAAoB,CAAC;QAC1B,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,4BAA4B,CAAC;QAC9E,MAAM,EACJ,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC9B,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpB,CAAC,CAAC;gBACE,IAAI,EAAE,6BAA6B;gBACnC,cAAc,EAAE,oBAAoB,CAClC,OAAO,CAAC,MAAM,CAAC,cAAc,EAC7B,yCAAyC,CAC1C;aACF;KACR,CAAC,CAAC;AACL,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,aAAa,CAC3B,MAAiB,EACjB,eAAoF,EAAE;IAEtF,OAAO,oBAAoB,CAAC;QAC1B,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,0BAA0B,CAAC;QAC9D,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,YAAY,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpF,CAAC,CAAC;AACL,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,iBAAiB,CAAC,OAOjC;IACC,OAAO,oBAAoB,CAAC;QAC1B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,4BAA4B,CAAC;QAC9E,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,4BAA4B,CAAC;QAC9E,YAAY,EAAE,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,gCAAgC,CAAC;QACxF,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ConnectionBinding, ConnectionRef, ConnectionSource } from './connection-types.js';
|
|
2
2
|
import type { ConnectorRef } from './connectors.js';
|
|
3
|
-
export { clientCredentials, externalExchange, managedSecret } from './connection-types.js';
|
|
3
|
+
export { clientCredentials, externalExchange, googleWorkloadIdentity, managedSecret, } from './connection-types.js';
|
|
4
4
|
/** Name one logical connection. The id is stable app configuration, not a provider account id. */
|
|
5
5
|
export declare function connection(id: string, source: ConnectionSource): ConnectionRef;
|
|
6
6
|
/** Bind a connector ref to one credential profile and logical connection. */
|
|
@@ -11,7 +11,7 @@ export declare function bind<ProfileKey extends string>(connector: ConnectorRef<
|
|
|
11
11
|
readonly profile: NoInfer<ProfileKey>;
|
|
12
12
|
readonly connection: ConnectionRef;
|
|
13
13
|
}): BoundConnectorRef<ProfileKey>;
|
|
14
|
-
export type { ConnectionBinding, ConnectionRef, ConnectionSource } from './connection-types.js';
|
|
14
|
+
export type { ConnectionBinding, ConnectionRef, ConnectionSource, GoogleWorkloadIdentityAccess, } from './connection-types.js';
|
|
15
15
|
type ManifestV2ConnectorBinding = NonNullable<NonNullable<Extract<Manifest, {
|
|
16
16
|
manifestVersion: '2';
|
|
17
17
|
}>['connectors']>[string]['binding']>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,
|
|
1
|
+
{"version":3,"file":"connections.d.ts","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,aAAa,GACd,MAAM,uBAAuB,CAAC;AAI/B,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,aAAa,CAK9E;AAED,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM,CACnE,SAAQ,YAAY,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;CACjD;AAED,wBAAgB,IAAI,CAAC,UAAU,SAAS,MAAM,EAC5C,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,EACnC,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAA;CAAE,GACrF,iBAAiB,CAAC,UAAU,CAAC,CAiB/B;AAED,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAE/B,KAAK,0BAA0B,GAAG,WAAW,CAC3C,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE;IAAE,eAAe,EAAE,GAAG,CAAA;CAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAC1F,CAAC;AAEF,wGAAwG;AACxG,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,iBAAiB,GACzB,0BAA0B,CAuC5B;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,YAAY,GAAG;IAC/D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,CAAC;CAC/C,CAQA;AAED,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { clientCredentials, externalExchange, managedSecret } from './connection-types.js';
|
|
1
|
+
export { clientCredentials, externalExchange, googleWorkloadIdentity, managedSecret, } from './connection-types.js';
|
|
2
2
|
const NAME = /^[a-z0-9_]+$/;
|
|
3
3
|
/** Name one logical connection. The id is stable app configuration, not a provider account id. */
|
|
4
4
|
export function connection(id, source) {
|
|
@@ -47,7 +47,18 @@ export function toManifestConnectionBinding(binding) {
|
|
|
47
47
|
...(source.scopes !== undefined ? { scopes: [...source.scopes] } : {}),
|
|
48
48
|
...(source.audience !== undefined ? { audience: source.audience } : {}),
|
|
49
49
|
}
|
|
50
|
-
:
|
|
50
|
+
: source.kind === 'googleWorkloadIdentity'
|
|
51
|
+
? {
|
|
52
|
+
kind: 'googleWorkloadIdentity',
|
|
53
|
+
provider: source.provider,
|
|
54
|
+
access: source.access.kind === 'direct'
|
|
55
|
+
? { kind: 'direct' }
|
|
56
|
+
: {
|
|
57
|
+
kind: 'serviceAccountImpersonation',
|
|
58
|
+
serviceAccount: source.access.serviceAccount,
|
|
59
|
+
},
|
|
60
|
+
}
|
|
61
|
+
: { kind: 'externalExchange' },
|
|
51
62
|
},
|
|
52
63
|
};
|
|
53
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"connections.js","sourceRoot":"","sources":["../src/connections.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { z } from 'zod';
|
|
|
3
3
|
export type { PackagedAssetReference } from '@noodle-borg/compiler';
|
|
4
4
|
export { type AssistantLabels, type AssistantLayoutMode, type AssistantPosition, type AssistantPresentationOptions, type AssistantPresentationTone, type AssistantThemeMode, type AssistantUiOptions, type EmbeddedAssistantConfig, type EmbeddedAssistantOptions, embeddedAssistant, type OpenAICompatibleModel, type OpenAICompatibleModelInput, openAICompatible, } from './assistant.js';
|
|
5
5
|
export { type ConfigRef, type ConfigRefKind, secret, variable, } from './config.js';
|
|
6
|
-
export { type BoundConnectorRef, bind, type ConnectionBinding, type ConnectionRef, type ConnectionSource, clientCredentials, connection, externalExchange, managedSecret, } from './connections.js';
|
|
6
|
+
export { type BoundConnectorRef, bind, type ConnectionBinding, type ConnectionRef, type ConnectionSource, clientCredentials, connection, externalExchange, type GoogleWorkloadIdentityAccess, googleWorkloadIdentity, managedSecret, } from './connections.js';
|
|
7
7
|
export { type ComputeHost, type ComputeLimits, type ComputeOperationOptions, ConnectorBuilder, type ConnectorCatalogDoc, type ConnectorOpDefinition, type ConnectorOperationOptions, type ConnectorRef, connector, type HttpConnectorOptions, } from './connectors.js';
|
|
8
8
|
export type { AmbientContextOptions, AmbientProviderContext, ServerContextOptions, } from './context.js';
|
|
9
9
|
export { type CustomerAuth, type CustomerAuthClaimMap, customerAuth, type FederatedOidcIssuer, } from './customer-auth.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,MAAM,EACN,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,SAAS,EACT,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EACL,KAAK,IAAI,EACT,KAAK,eAAe,EACpB,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,KAAK,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,YAAY,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,MAAM,EACN,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,iBAAiB,EACtB,IAAI,EACJ,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,KAAK,4BAA4B,EACjC,sBAAsB,EACtB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,SAAS,EACT,KAAK,oBAAoB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,YAAY,EACZ,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EACL,KAAK,IAAI,EACT,KAAK,eAAe,EACpB,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,KAAK,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,MAAM,EACN,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,QAAQ,EACR,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AAChD,OAAO,EAAE,CAAC,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export { embeddedAssistant, openAICompatible, } from './assistant.js';
|
|
3
3
|
export { secret, variable, } from './config.js';
|
|
4
|
-
export { bind, clientCredentials, connection, externalExchange, managedSecret, } from './connections.js';
|
|
4
|
+
export { bind, clientCredentials, connection, externalExchange, googleWorkloadIdentity, managedSecret, } from './connections.js';
|
|
5
5
|
export { ConnectorBuilder, connector, } from './connectors.js';
|
|
6
6
|
export { customerAuth, } from './customer-auth.js';
|
|
7
7
|
export { gmailConnector } from './gmail.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAUL,iBAAiB,EAGjB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,MAAM,EACN,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,IAAI,EAIJ,iBAAiB,EACjB,UAAU,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAUL,iBAAiB,EAGjB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAGL,MAAM,EACN,QAAQ,GACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,IAAI,EAIJ,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAEhB,sBAAsB,EACtB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAIL,gBAAgB,EAKhB,SAAS,GAEV,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EAGL,YAAY,GAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAIL,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAKL,IAAI,GACL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,WAAW,EACX,KAAK,EAGL,kBAAkB,EAGlB,MAAM,EAIN,QAAQ,EAIR,MAAM,EAIN,IAAI,EAIJ,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,CAAC,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ArtifactFulfilment, ArtifactPrompt, ArtifactResource, ArtifactTool } from './types.js';
|
|
2
|
-
export declare function artifactConfig(tools: readonly ArtifactTool[], resources: readonly ArtifactResource[], prompts: readonly ArtifactPrompt[], ambientFulfilment?: ArtifactFulfilment): {
|
|
1
|
+
import type { ArtifactConnectorBinding, ArtifactFulfilment, ArtifactPrompt, ArtifactResource, ArtifactTool } from './types.js';
|
|
2
|
+
export declare function artifactConfig(tools: readonly ArtifactTool[], resources: readonly ArtifactResource[], prompts: readonly ArtifactPrompt[], connectorBindings: Readonly<Record<string, ArtifactConnectorBinding>>, ambientFulfilment?: ArtifactFulfilment): {
|
|
3
3
|
readonly variables?: readonly string[];
|
|
4
4
|
} | undefined;
|
|
5
5
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/artifact/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,SAAS,EAAE,SAAS,gBAAgB,EAAE,EACtC,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,iBAAiB,CAAC,EAAE,kBAAkB,GACrC;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/artifact/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,SAAS,EAAE,SAAS,gBAAgB,EAAE,EACtC,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,EACrE,iBAAiB,CAAC,EAAE,kBAAkB,GACrC;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CAYxD"}
|