@detergent-software/atk 9.2.0-dev.1 → 9.2.0-dev.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +18 -1
  3. package/build/command-manifest.json +20 -0
  4. package/build/commands/diff.d.ts +2 -1
  5. package/build/commands/diff.d.ts.map +1 -1
  6. package/build/commands/diff.js +15 -5
  7. package/build/commands/diff.js.map +1 -1
  8. package/build/commands/drift.d.ts +2 -1
  9. package/build/commands/drift.d.ts.map +1 -1
  10. package/build/commands/drift.js +8 -3
  11. package/build/commands/drift.js.map +1 -1
  12. package/build/commands/info.d.ts.map +1 -1
  13. package/build/commands/info.js +18 -2
  14. package/build/commands/info.js.map +1 -1
  15. package/build/commands/outdated.d.ts +2 -1
  16. package/build/commands/outdated.d.ts.map +1 -1
  17. package/build/commands/outdated.js +11 -1
  18. package/build/commands/outdated.js.map +1 -1
  19. package/build/commands/schema.d.ts +1 -1
  20. package/build/commands/sync.d.ts +2 -1
  21. package/build/commands/sync.d.ts.map +1 -1
  22. package/build/commands/sync.js +40 -8
  23. package/build/commands/sync.js.map +1 -1
  24. package/build/components/BundleDetail.d.ts +3 -1
  25. package/build/components/BundleDetail.d.ts.map +1 -1
  26. package/build/components/BundleDetail.js +4 -2
  27. package/build/components/BundleDetail.js.map +1 -1
  28. package/build/components/Field.js +1 -1
  29. package/build/components/Field.js.map +1 -1
  30. package/build/lib/atk-api/generated/types.gen.d.ts +8 -8
  31. package/build/lib/atk-schemas/claude-plugin.d.ts +56 -0
  32. package/build/lib/atk-schemas/claude-plugin.d.ts.map +1 -0
  33. package/build/lib/atk-schemas/claude-plugin.js +199 -0
  34. package/build/lib/atk-schemas/claude-plugin.js.map +1 -0
  35. package/build/lib/atk-schemas/index.d.ts +3 -0
  36. package/build/lib/atk-schemas/index.d.ts.map +1 -1
  37. package/build/lib/atk-schemas/index.js +3 -0
  38. package/build/lib/atk-schemas/index.js.map +1 -1
  39. package/package.json +1 -1
@@ -1,17 +1,25 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Box } from 'ink';
2
+ import { Box, Text } from 'ink';
3
3
  import { z } from 'zod';
4
4
  import { assetCount, ErrorView, LocalEditsHint, RunStoppedHint, Spinner, SyncAllInSync, SyncDriftedList, SyncNoAssets, UndeclaredRemovedHint, } from '../components/index.js';
5
5
  import { useCommand } from '../hooks/useCommand.js';
6
6
  import { useResolvedScope } from '../hooks/useResolvedScope.js';
7
+ import { identityKey } from '../lib/lockfile.js';
7
8
  import { renderJson, useNonInteractive } from '../lib/output.js';
8
9
  import { option } from '../lib/pastel/index.js';
9
10
  import { fetchRegistry } from '../lib/registry.js';
10
11
  import { loadScopeConfig, scopedCommand, scopeLabel } from '../lib/scope.js';
11
12
  import { dryRunSync, syncAssets } from '../lib/sync.js';
12
13
  import { resolvePlacingTools } from '../lib/tool-resolver.js';
14
+ import { reportUsageError } from '../lib/usage-error.js';
13
15
  export const description = 'Re-apply drifted installed assets, keeping local edits (use --force to re-apply all)';
14
16
  export const options = z.object({
17
+ check: z
18
+ .boolean()
19
+ .optional()
20
+ .describe(option({
21
+ description: "Exit 1 when installed files don't match the lockfile, local edits included; changes nothing (for CI)",
22
+ })),
15
23
  dryRun: z
16
24
  .boolean()
17
25
  .default(false)
@@ -61,16 +69,20 @@ export const options = z.object({
61
69
  description: 'Use the user scope (the user root, ~ by default) instead of the project',
62
70
  })),
63
71
  });
64
- export default function Sync({ options: { dryRun, force, json, projectRoot, refresh, tool, user } }) {
72
+ export default function Sync({ options: { check, dryRun, force, json, projectRoot, refresh, tool, user } }) {
65
73
  const { json: effectiveJson } = useNonInteractive(json);
66
74
  const { fields, resolve, resolved } = useResolvedScope({ projectRoot, user });
67
75
  const state = useCommand(async (progress) => {
76
+ if (check && force) {
77
+ reportUsageError('error: --check and --force contradict each other: --check changes nothing', effectiveJson);
78
+ }
68
79
  const { root: projectDir, scope } = await resolve();
69
80
  const tools = await resolvePlacingTools(tool, projectDir);
70
81
  progress('Fetching registry...');
71
- const registry = await fetchRegistry({ force: refresh });
82
+ // The check writes nothing, so a cached registry serves when the API can't be read.
83
+ const registry = await fetchRegistry({ force: refresh, ...(check ? { stale: true } : {}) });
72
84
  const projectConfig = await loadScopeConfig(projectDir);
73
- if (dryRun) {
85
+ if (dryRun || check) {
74
86
  const toolResults = await dryRunSync({
75
87
  force,
76
88
  onProgress: progress,
@@ -93,7 +105,7 @@ export default function Sync({ options: { dryRun, force, json, projectRoot, refr
93
105
  });
94
106
  const notRunTools = tools.slice(toolResults.length).map((t) => t.tool);
95
107
  return { ...(notRunTools.length > 0 ? { notRunTools } : {}), outcome: 'synced', scope, toolResults };
96
- }, [dryRun, force, projectRoot, refresh, tool, user]);
108
+ }, [check, dryRun, force, projectRoot, refresh, tool, user]);
97
109
  if (state.status === 'loading') {
98
110
  return _jsx(Spinner, { message: state.message });
99
111
  }
@@ -112,13 +124,15 @@ export default function Sync({ options: { dryRun, force, json, projectRoot, refr
112
124
  }
113
125
  const { data } = state;
114
126
  const where = resolved ? scopeLabel(resolved) : undefined;
115
- const outcome = data.outcome === 'dry-run' ? 'sync-dry-run' : liveSyncOutcome(data.toolResults);
116
- if (outcome === 'failed' || outcome === 'partial') {
127
+ const mismatched = data.outcome === 'dry-run' && check ? mismatchCount(data.toolResults) : 0;
128
+ const outcome = data.outcome === 'dry-run' ? (check ? 'sync-check' : 'sync-dry-run') : liveSyncOutcome(data.toolResults);
129
+ if (outcome === 'failed' || outcome === 'partial' || mismatched > 0) {
117
130
  process.exitCode = 1;
118
131
  }
119
132
  if (effectiveJson) {
120
133
  const notRunTools = data.outcome === 'synced' ? data.notRunTools : undefined;
121
134
  return renderJson({
135
+ ...(check ? { hasFailures: mismatched > 0 } : {}),
122
136
  ...(notRunTools ? { notRunTools } : {}),
123
137
  outcome,
124
138
  toolResults: data.toolResults,
@@ -126,7 +140,8 @@ export default function Sync({ options: { dryRun, force, json, projectRoot, refr
126
140
  });
127
141
  }
128
142
  if (data.outcome === 'dry-run') {
129
- return (_jsx(Box, { flexDirection: 'column', children: data.toolResults.map((result) => (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunToolResult, { result: result, scope: data.scope, where: where }), _jsx(LocalEditsHint, { assets: result.localEdits ?? [], heading: localEditsHeading(result.localEdits?.length ?? 0, data.scope, true) }), _jsx(UndeclaredRemovedHint, { assets: result.wouldRemove ?? [], dryRun: true, tool: result.tool })] }, result.tool))) }));
143
+ return (_jsxs(Box, { flexDirection: 'column', children: [data.toolResults.map((result) => (_jsxs(Box, { flexDirection: 'column', children: [_jsx(DryRunToolResult, { result: result, scope: data.scope, where: where }), _jsx(LocalEditsHint, { assets: result.localEdits ?? [], heading: localEditsHeading(result.localEdits?.length ?? 0, data.scope, true) }), _jsx(UndeclaredRemovedHint, { assets: result.wouldRemove ?? [], dryRun: true, tool: result.tool })] }, result.tool))), check &&
144
+ (mismatched > 0 ? (_jsxs(Text, { color: 'red', children: ["\u2717 ", assetCount(mismatched), " ", mismatched === 1 ? "doesn't" : "don't", " match the lockfile."] })) : (_jsx(Text, { color: 'green', children: "\u2713 Installed assets match the lockfile." })))] }));
130
145
  }
131
146
  const stoppedAt = data.toolResults.find((r) => r.notAttempted);
132
147
  return (_jsxs(Box, { flexDirection: 'column', children: [data.toolResults.map((result) => (_jsxs(Box, { flexDirection: 'column', children: [_jsx(LiveToolResult, { result: result, scope: data.scope, where: where }), _jsx(LocalEditsHint, { assets: result.localEdits ?? [], heading: localEditsHeading(result.localEdits?.length ?? 0, data.scope, false) }), _jsx(UndeclaredRemovedHint, { assets: result.removed ?? [], tool: result.tool })] }, result.tool))), stoppedAt?.notAttempted && (_jsx(RunStoppedHint, { notAttempted: stoppedAt.notAttempted, notRunTools: data.notRunTools ?? [] }))] }));
@@ -174,4 +189,21 @@ function localEditsHeading(count, scope, dryRun) {
174
189
  const force = scopedCommand('atk sync --force', scope);
175
190
  return `${dryRun ? 'Would keep' : 'Kept'} local edits in ${assetCount(count)}, not synced (run ${force} to overwrite them):`;
176
191
  }
192
+ /**
193
+ * How many assets `--check` fails on, each once across tools: those a sync would re-apply or
194
+ * refuse, those whose edits a sync keeps, and hook copies a sync would remove. Frozen and excluded
195
+ * assets don't count.
196
+ */
197
+ function mismatchCount(toolResults) {
198
+ const keys = new Set();
199
+ for (const r of toolResults) {
200
+ for (const { asset } of r.toSync)
201
+ keys.add(identityKey(asset));
202
+ for (const a of [...(r.localEdits ?? []), ...(r.wouldRemove ?? [])])
203
+ keys.add(identityKey(a));
204
+ for (const f of r.wouldFail ?? [])
205
+ keys.add(identityKey({ name: f.assetName, org: f.org, type: f.assetType }));
206
+ }
207
+ return keys.size;
208
+ }
177
209
  //# sourceMappingURL=sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import type { RegistryBundle } from '../lib/schemas/index.js';
2
2
  interface BundleDetailProps {
3
3
  bundle: RegistryBundle;
4
+ /** The bundle is generated into the claude.ai plugins marketplace */
5
+ claudePlugin?: boolean;
4
6
  /** Optional deprecation info */
5
7
  deprecation?: {
6
8
  deprecated: boolean;
@@ -13,6 +15,6 @@ interface BundleDetailProps {
13
15
  readme?: string;
14
16
  webUrl?: string;
15
17
  }
16
- export default function BundleDetail({ bundle, deprecation, full, readme, webUrl }: BundleDetailProps): import("react").JSX.Element;
18
+ export default function BundleDetail({ bundle, claudePlugin, deprecation, full, readme, webUrl }: BundleDetailProps): import("react").JSX.Element;
17
19
  export {};
18
20
  //# sourceMappingURL=BundleDetail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BundleDetail.d.ts","sourceRoot":"","sources":["../../src/components/BundleDetail.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQ9D,UAAU,iBAAiB;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,gCAAgC;IAChC,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,4DAA4D;IAC5D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,+BA+EpG"}
1
+ {"version":3,"file":"BundleDetail.d.ts","sourceRoot":"","sources":["../../src/components/BundleDetail.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAW9D,UAAU,iBAAiB;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gCAAgC;IAChC,WAAW,CAAC,EAAE;QACZ,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,4DAA4D;IAC5D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,+BA2FlH"}
@@ -5,11 +5,13 @@ import Field from './Field.js';
5
5
  import Link from './Link.js';
6
6
  import ReadmeSection from './ReadmeSection.js';
7
7
  import SectionDivider from './SectionDivider.js';
8
- export default function BundleDetail({ bundle, deprecation, full, readme, webUrl }) {
8
+ /** The claude.ai plugins marketplace that flagged bundles are generated into (ATK-538). */
9
+ const ATK_PLUGINS_URL = 'https://github.com/EmergentSoftware/atk-plugins';
10
+ export default function BundleDetail({ bundle, claudePlugin, deprecation, full, readme, webUrl }) {
9
11
  const { stdout } = useStdout();
10
12
  const terminalWidth = stdout?.columns ?? 120;
11
13
  const dividerWidth = Math.max(40, terminalWidth - 6);
12
14
  const assets = bundle.assets ?? [];
13
- return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Box, { borderColor: 'gray', borderStyle: 'round', flexDirection: 'column', paddingX: 1, children: [_jsx(Text, { bold: true, color: 'cyan', children: formatOrgName(bundle.org, bundle.name) }), _jsxs(Text, { dimColor: true, children: ["bundle \u00B7 v", bundle.version, " \u00B7 ", bundle.assetCount, " asset", bundle.assetCount !== 1 ? 's' : ''] })] }), deprecation?.deprecated && (_jsxs(Box, { marginTop: 1, paddingLeft: 2, children: [_jsxs(Text, { bold: true, color: 'red', children: ["DEPRECATED: ", deprecation.reason] }), deprecation.replacement && (_jsxs(Text, { children: [' ', "Use ", _jsx(Text, { bold: true, children: deprecation.replacement }), " instead."] }))] })), _jsx(Box, { marginTop: 1, paddingLeft: 2, children: _jsx(Text, { wrap: 'wrap', children: bundle.description }) }), _jsxs(Box, { flexDirection: 'column', marginTop: 1, paddingLeft: 2, children: [_jsx(Field, { label: 'Author', value: bundle.author }), bundle.tags.length > 0 && (_jsx(Field, { label: 'Tags', children: _jsx(Text, { children: bundle.tags.map((tag, i) => (_jsxs(Text, { children: [i > 0 ? ', ' : '', _jsx(Text, { color: 'blue', children: tag })] }, tag))) }) }))] }), assets.length > 0 && (_jsxs(Box, { flexDirection: 'column', marginTop: 1, children: [_jsx(SectionDivider, { label: `Assets (${assets.length})`, width: dividerWidth }), assets.map((a) => (_jsxs(Text, { children: [' ', formatOrgName(a.org, a.name), " ", _jsxs(Text, { dimColor: true, children: ["(", a.type, ")"] })] }, `${a.org ?? '_'}/${a.type}/${a.name}`)))] })), readme && _jsx(ReadmeSection, { dividerWidth: dividerWidth, full: full, readme: readme }), webUrl && (_jsxs(Box, { marginTop: 1, paddingLeft: 2, children: [_jsx(Text, { dimColor: true, children: "Web: " }), _jsx(Link, { url: webUrl, children: webUrl })] }))] }));
15
+ return (_jsxs(Box, { flexDirection: 'column', children: [_jsxs(Box, { borderColor: 'gray', borderStyle: 'round', flexDirection: 'column', paddingX: 1, children: [_jsx(Text, { bold: true, color: 'cyan', children: formatOrgName(bundle.org, bundle.name) }), _jsxs(Text, { dimColor: true, children: ["bundle \u00B7 v", bundle.version, " \u00B7 ", bundle.assetCount, " asset", bundle.assetCount !== 1 ? 's' : ''] })] }), deprecation?.deprecated && (_jsxs(Box, { marginTop: 1, paddingLeft: 2, children: [_jsxs(Text, { bold: true, color: 'red', children: ["DEPRECATED: ", deprecation.reason] }), deprecation.replacement && (_jsxs(Text, { children: [' ', "Use ", _jsx(Text, { bold: true, children: deprecation.replacement }), " instead."] }))] })), _jsx(Box, { marginTop: 1, paddingLeft: 2, children: _jsx(Text, { wrap: 'wrap', children: bundle.description }) }), _jsxs(Box, { flexDirection: 'column', marginTop: 1, paddingLeft: 2, children: [_jsx(Field, { label: 'Author', value: bundle.author }), bundle.tags.length > 0 && (_jsx(Field, { label: 'Tags', children: _jsx(Text, { children: bundle.tags.map((tag, i) => (_jsxs(Text, { children: [i > 0 ? ', ' : '', _jsx(Text, { color: 'blue', children: tag })] }, tag))) }) })), claudePlugin && (_jsx(Field, { label: 'claude.ai', children: _jsxs(Box, { flexDirection: 'column', children: [_jsxs(Text, { children: ["A plugin for claude.ai chat users: ", _jsx(Link, { url: ATK_PLUGINS_URL, children: ATK_PLUGINS_URL })] }), _jsx(Text, { dimColor: true, wrap: 'wrap', children: "atk users don't need it: it syncs into Claude Code, doubling each skill." })] }) }))] }), assets.length > 0 && (_jsxs(Box, { flexDirection: 'column', marginTop: 1, children: [_jsx(SectionDivider, { label: `Assets (${assets.length})`, width: dividerWidth }), assets.map((a) => (_jsxs(Text, { children: [' ', formatOrgName(a.org, a.name), " ", _jsxs(Text, { dimColor: true, children: ["(", a.type, ")"] })] }, `${a.org ?? '_'}/${a.type}/${a.name}`)))] })), readme && _jsx(ReadmeSection, { dividerWidth: dividerWidth, full: full, readme: readme }), webUrl && (_jsxs(Box, { marginTop: 1, paddingLeft: 2, children: [_jsx(Text, { dimColor: true, children: "Web: " }), _jsx(Link, { url: webUrl, children: webUrl })] }))] }));
14
16
  }
15
17
  //# sourceMappingURL=BundleDetail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BundleDetail.js","sourceRoot":"","sources":["../../src/components/BundleDetail.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BundleDetail.js","sourceRoot":"","sources":["../../src/components/BundleDetail.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,6 @@ import { Box, Text } from 'ink';
4
4
  * Metadata field with consistent label width alignment.
5
5
  */
6
6
  export default function Field({ children, color, dimValue, label, value, }) {
7
- return (_jsxs(Box, { children: [_jsx(Box, { width: 14, children: _jsxs(Text, { bold: true, children: [label, ":"] }) }), children ?? (_jsx(Text, { color: color, dimColor: dimValue, wrap: 'truncate', children: value }))] }));
7
+ return (_jsxs(Box, { children: [_jsx(Box, { flexShrink: 0, width: 14, children: _jsxs(Text, { bold: true, children: [label, ":"] }) }), children ?? (_jsx(Text, { color: color, dimColor: dimValue, wrap: 'truncate', children: value }))] }));
8
8
  }
9
9
  //# sourceMappingURL=Field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../src/components/Field.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,GAON;IACC,OAAO,CACL,MAAC,GAAG,eACF,KAAC,GAAG,IAAC,KAAK,EAAE,EAAE,YACZ,MAAC,IAAI,IAAC,IAAI,mBAAE,KAAK,SAAS,GACtB,EACL,QAAQ,IAAI,CACX,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,UAAU,YACpD,KAAK,GACD,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Field.js","sourceRoot":"","sources":["../../src/components/Field.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,GAON;IACC,OAAO,CACL,MAAC,GAAG,eACF,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,YAC3B,MAAC,IAAI,IAAC,IAAI,mBAAE,KAAK,SAAS,GACtB,EACL,QAAQ,IAAI,CACX,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,UAAU,YACpD,KAAK,GACD,CACR,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -1458,7 +1458,7 @@ export type PublishPlanErrors = {
1458
1458
  */
1459
1459
  426: ApiError;
1460
1460
  /**
1461
- * The API's GitHub publish token is missing or rejected (`server_misconfigured`)
1461
+ * The API's GitHub credentials for registry writes are missing or rejected (`server_misconfigured`)
1462
1462
  */
1463
1463
  500: ApiError;
1464
1464
  /**
@@ -1506,7 +1506,7 @@ export type PublishErrors = {
1506
1506
  */
1507
1507
  426: ApiError;
1508
1508
  /**
1509
- * The API's GitHub publish token is missing or rejected (`server_misconfigured`)
1509
+ * The API's GitHub credentials for registry writes are missing or rejected (`server_misconfigured`)
1510
1510
  */
1511
1511
  500: ApiError;
1512
1512
  /**
@@ -1554,7 +1554,7 @@ export type UnpublishPlanErrors = {
1554
1554
  */
1555
1555
  426: ApiError;
1556
1556
  /**
1557
- * The API's GitHub publish token is missing or rejected (`server_misconfigured`)
1557
+ * The API's GitHub credentials for registry writes are missing or rejected (`server_misconfigured`)
1558
1558
  */
1559
1559
  500: ApiError;
1560
1560
  /**
@@ -1602,7 +1602,7 @@ export type UnpublishErrors = {
1602
1602
  */
1603
1603
  426: ApiError;
1604
1604
  /**
1605
- * The API's GitHub publish token is missing or rejected (`server_misconfigured`)
1605
+ * The API's GitHub credentials for registry writes are missing or rejected (`server_misconfigured`)
1606
1606
  */
1607
1607
  500: ApiError;
1608
1608
  /**
@@ -1650,7 +1650,7 @@ export type PromotePlanErrors = {
1650
1650
  */
1651
1651
  426: ApiError;
1652
1652
  /**
1653
- * The API's GitHub publish token is missing or rejected (`server_misconfigured`)
1653
+ * The API's GitHub credentials for registry writes are missing or rejected (`server_misconfigured`)
1654
1654
  */
1655
1655
  500: ApiError;
1656
1656
  /**
@@ -1698,7 +1698,7 @@ export type PromoteErrors = {
1698
1698
  */
1699
1699
  426: ApiError;
1700
1700
  /**
1701
- * The API's GitHub publish token is missing or rejected (`server_misconfigured`)
1701
+ * The API's GitHub credentials for registry writes are missing or rejected (`server_misconfigured`)
1702
1702
  */
1703
1703
  500: ApiError;
1704
1704
  /**
@@ -1746,7 +1746,7 @@ export type DeprecatePlanErrors = {
1746
1746
  */
1747
1747
  426: ApiError;
1748
1748
  /**
1749
- * The API's GitHub publish token is missing or rejected (`server_misconfigured`)
1749
+ * The API's GitHub credentials for registry writes are missing or rejected (`server_misconfigured`)
1750
1750
  */
1751
1751
  500: ApiError;
1752
1752
  /**
@@ -1794,7 +1794,7 @@ export type DeprecateErrors = {
1794
1794
  */
1795
1795
  426: ApiError;
1796
1796
  /**
1797
- * The API's GitHub publish token is missing or rejected (`server_misconfigured`)
1797
+ * The API's GitHub credentials for registry writes are missing or rejected (`server_misconfigured`)
1798
1798
  */
1799
1799
  500: ApiError;
1800
1800
  /**
@@ -0,0 +1,56 @@
1
+ import type { Bundle } from './bundle.ts';
2
+ import type { Manifest } from './manifest.ts';
3
+ /**
4
+ * The rules a bundle flagged `metadata.claudePlugin` must meet to become a claude.ai plugin, and what the plugin holds
5
+ * when it does (ATK-538). One source for both readers of the registry: `@atk/claude-plugins` checks a registry
6
+ * checkout before it generates the plugins, and the API checks its snapshot before a flagged bundle's publish
7
+ * (ATK-747). Every problem names the bundle and the asset. No I/O and no `node:path`, since the CLI vendors this
8
+ * package: the {@link ClaudePluginRegistry} reads, and paths are compared as plain strings.
9
+ */
10
+ /** The asset types a plugin can hold, and their directories under `assets/`. */
11
+ export declare const CLAUDE_PLUGIN_TYPE_DIRS: {
12
+ readonly 'mcp-config': "mcp-configs";
13
+ readonly skill: "skills";
14
+ };
15
+ export interface ClaudePlugin {
16
+ mcpServers: Record<string, Record<string, unknown>>;
17
+ skills: ClaudePluginSkill[];
18
+ }
19
+ export type ClaudePluginAssetType = keyof typeof CLAUDE_PLUGIN_TYPE_DIRS;
20
+ export interface ClaudePluginProblem {
21
+ /** The index in the bundle's `assets` of the asset it is about; absent for the bundle itself. */
22
+ asset?: number;
23
+ message: string;
24
+ }
25
+ /** A global asset version of the registry, read from a checkout or a snapshot. */
26
+ export interface ClaudePluginRegistry {
27
+ /** Whether the version's directory has `file`, a normalized path relative to it (with /). */
28
+ isFile(type: ClaudePluginAssetType, name: string, version: string, file: string): Promise<boolean>;
29
+ /** The names of the files at the top of the version's directory. */
30
+ listFiles(type: ClaudePluginAssetType, name: string, version: string): Promise<string[]>;
31
+ /** The version's `manifest.json`, or undefined when the registry has no such version. */
32
+ manifest(type: ClaudePluginAssetType, name: string, version: string): Promise<Manifest | undefined>;
33
+ /** A file of the version's directory (a normalized path relative to it), or undefined when it has none. */
34
+ readText(type: ClaudePluginAssetType, name: string, version: string, file: string): Promise<string | undefined>;
35
+ }
36
+ export interface ClaudePluginSkill {
37
+ entrypoint: string;
38
+ /** The files besides the entrypoint, which the plugin places as SKILL.md. */
39
+ files: string[];
40
+ name: string;
41
+ version: string;
42
+ }
43
+ export type ResolvedClaudePlugin = {
44
+ plugin: ClaudePlugin;
45
+ problems: [];
46
+ } | {
47
+ plugin?: undefined;
48
+ problems: ClaudePluginProblem[];
49
+ };
50
+ /** True when the bundle asks to become a claude.ai plugin. */
51
+ export declare function isClaudePlugin(bundle: Pick<Bundle, 'metadata'>): boolean;
52
+ /** Checks the bundle against the plugin rules; `org` is its scope (the bundle's own, or its `bundles/@<org>/` directory). */
53
+ export declare function resolveClaudePlugin(bundle: Pick<Bundle, 'assets' | 'name' | 'version'>, { org }: {
54
+ org: string | undefined;
55
+ }, registry: ClaudePluginRegistry): Promise<ResolvedClaudePlugin>;
56
+ //# sourceMappingURL=claude-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-plugin.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-schemas/claude-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;GAMG;AAEH,gFAAgF;AAChF,eAAO,MAAM,uBAAuB;;;CAA4D,CAAC;AACjG,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAEzE,MAAM,WAAW,mBAAmB;IAClC,iGAAiG;IACjG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,6FAA6F;IAC7F,MAAM,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnG,oEAAoE;IACpE,SAAS,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzF,yFAAyF;IACzF,QAAQ,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IACpG,2GAA2G;IAC3G,QAAQ,CAAC,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACjH;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAC9B;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,EAAE,CAAA;CAAE,GAAG;IAAE,MAAM,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAA;CAAE,CAAC;AAMnG,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAExE;AAED,6HAA6H;AAC7H,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,EACnD,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EACpC,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA0F/B"}
@@ -0,0 +1,199 @@
1
+ // GENERATED from packages/schemas by `pnpm sync-cli`. Do not edit.
2
+ import { satisfies, valid } from 'semver';
3
+ /**
4
+ * The rules a bundle flagged `metadata.claudePlugin` must meet to become a claude.ai plugin, and what the plugin holds
5
+ * when it does (ATK-538). One source for both readers of the registry: `@atk/claude-plugins` checks a registry
6
+ * checkout before it generates the plugins, and the API checks its snapshot before a flagged bundle's publish
7
+ * (ATK-747). Every problem names the bundle and the asset. No I/O and no `node:path`, since the CLI vendors this
8
+ * package: the {@link ClaudePluginRegistry} reads, and paths are compared as plain strings.
9
+ */
10
+ /** The asset types a plugin can hold, and their directories under `assets/`. */
11
+ export const CLAUDE_PLUGIN_TYPE_DIRS = { 'mcp-config': 'mcp-configs', skill: 'skills' };
12
+ const PLACEHOLDER = /\$\{[^}]*\}/;
13
+ // The registry's asset and bundle names (apps/api/src/publish/plan-builder.ts): they become directory names.
14
+ const NAME = /^[a-z][a-z0-9-]*$/;
15
+ /** True when the bundle asks to become a claude.ai plugin. */
16
+ export function isClaudePlugin(bundle) {
17
+ return bundle.metadata?.['claudePlugin'] === true;
18
+ }
19
+ /** Checks the bundle against the plugin rules; `org` is its scope (the bundle's own, or its `bundles/@<org>/` directory). */
20
+ export async function resolveClaudePlugin(bundle, { org }, registry) {
21
+ const problems = [];
22
+ const prefix = `bundle ${bundle.name}@${bundle.version}`;
23
+ if (org !== undefined) {
24
+ problems.push({ message: `${prefix}: is org-scoped (@${org}); every staff member can read the plugins repo` });
25
+ }
26
+ if (!NAME.test(bundle.name)) {
27
+ problems.push({ message: `${prefix}: isn't a kebab-case name, so it can't name a plugin` });
28
+ }
29
+ const skills = [];
30
+ const mcpServers = new Map();
31
+ for (const [asset, ref] of bundle.assets.entries()) {
32
+ const label = `${ref.type} "${ref.name}"${ref.version === undefined ? '' : `@${ref.version}`}`;
33
+ const fail = (message) => problems.push({ asset, message: `${prefix}: ${label} ${message}` });
34
+ if (!NAME.test(ref.name)) {
35
+ fail(`isn't a kebab-case name`);
36
+ continue;
37
+ }
38
+ if (ref.org !== undefined) {
39
+ fail(`is org-scoped (@${ref.org}); every staff member can read the plugins repo`);
40
+ continue;
41
+ }
42
+ if (!isPluginType(ref.type)) {
43
+ fail(`can't be in a claude.ai plugin: only skill and mcp-config assets can`);
44
+ continue;
45
+ }
46
+ if (!isExact(ref.version)) {
47
+ fail(`isn't pinned to an exact version, so the plugin could change without a version bump`);
48
+ continue;
49
+ }
50
+ const { name } = ref;
51
+ const type = ref.type;
52
+ const version = ref.version;
53
+ const manifest = await registry.manifest(type, name, version);
54
+ if (manifest === undefined) {
55
+ fail(`isn't in the registry (no assets/${CLAUDE_PLUGIN_TYPE_DIRS[type]}/${name}/${version})`);
56
+ continue;
57
+ }
58
+ if (manifest.org !== undefined) {
59
+ fail(`is org-scoped (@${manifest.org}); every staff member can read the plugins repo`);
60
+ continue;
61
+ }
62
+ for (const message of dependencyProblems(manifest, bundle.assets))
63
+ fail(message);
64
+ if (manifest.files === 'auto') {
65
+ fail(`lists its files as "auto"; a published manifest lists them`);
66
+ continue;
67
+ }
68
+ const entrypoint = manifest.entrypoint ?? (await defaultEntrypoint(registry, type, name, version));
69
+ // The entrypoint is placed as SKILL.md, so a `files` entry naming it again would be a second copy.
70
+ const files = (manifest.files ?? []).filter((file) => normalize(file) !== normalize(entrypoint));
71
+ const outside = [entrypoint, ...files].filter((file) => !isInside(file));
72
+ if (outside.length > 0) {
73
+ fail(`lists files outside its directory: ${outside.join(', ')}`);
74
+ continue;
75
+ }
76
+ if (type === 'skill') {
77
+ const missing = [];
78
+ for (const file of [entrypoint, ...files]) {
79
+ if (!(await registry.isFile(type, name, version, normalize(file))))
80
+ missing.push(file);
81
+ }
82
+ if (missing.length > 0) {
83
+ fail(`lists files the registry doesn't have: ${missing.join(', ')}`);
84
+ continue;
85
+ }
86
+ if (files.some((file) => normalize(file).toLowerCase() === 'skill.md')) {
87
+ fail(`lists a SKILL.md besides its entrypoint ${entrypoint}, which the plugin places as SKILL.md`);
88
+ continue;
89
+ }
90
+ // Normalized, as the registry was asked for them, so the plugin copies the files the check found.
91
+ skills.push({ entrypoint: normalize(entrypoint), files: files.map(normalize), name, version });
92
+ continue;
93
+ }
94
+ const servers = parseServers(await registry.readText(type, name, version, normalize(entrypoint)), entrypoint);
95
+ if (typeof servers === 'string') {
96
+ fail(servers);
97
+ continue;
98
+ }
99
+ for (const [server, config] of servers) {
100
+ for (const message of serverProblems(config))
101
+ fail(`server "${server}" ${message}`);
102
+ if (mcpServers.has(server))
103
+ fail(`server "${server}" is also in another mcp-config of the bundle`);
104
+ mcpServers.set(server, config);
105
+ }
106
+ }
107
+ return problems.length > 0
108
+ ? { problems }
109
+ : { plugin: { mcpServers: Object.fromEntries(mcpServers), skills }, problems: [] };
110
+ }
111
+ // An mcp-config's manifest may leave out its entrypoint: then it is the file the CLI takes for one
112
+ // (apps/cli/src/lib/adapter.ts isEntrypoint). A skill's manifest must name it.
113
+ async function defaultEntrypoint(registry, type, name, version) {
114
+ if (type === 'skill')
115
+ return 'SKILL.md';
116
+ const names = (await registry.listFiles(type, name, version)).sort();
117
+ return names.find((name) => /^(mcp-config|config|index)\.json$/i.test(name)) ?? 'config.json';
118
+ }
119
+ // Each dependency must be in the bundle, pinned: a semver range the bundle doesn't pin would change the plugin
120
+ // without a version bump, and users wouldn't get it. A dependency's own dependencies are checked as its bundle entry.
121
+ function dependencyProblems(manifest, refs) {
122
+ return (manifest.dependencies ?? []).flatMap((dep) => {
123
+ const pinned = refs.find((ref) => ref.name === dep.name && ref.type === dep.type);
124
+ const name = `dependency ${dep.type} "${dep.name}"${dep.version === undefined ? '' : ` (${dep.version})`}`;
125
+ if (pinned === undefined || !isExact(pinned.version)) {
126
+ return [`has ${name}, which the bundle doesn't list with an exact version`];
127
+ }
128
+ if (dep.version !== undefined && !satisfies(pinned.version, dep.version)) {
129
+ return [`has ${name}, which the bundle's ${pinned.version} doesn't satisfy`];
130
+ }
131
+ return [];
132
+ });
133
+ }
134
+ function isExact(version) {
135
+ return version !== undefined && valid(version) === version;
136
+ }
137
+ function isInside(file) {
138
+ const normal = normalize(file);
139
+ return !normal.startsWith('/') && normal !== '..' && !normal.startsWith('../');
140
+ }
141
+ function isPluginType(type) {
142
+ return Object.hasOwn(CLAUDE_PLUGIN_TYPE_DIRS, type);
143
+ }
144
+ function isRecord(value) {
145
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
146
+ }
147
+ /** `path.posix.normalize` after turning backslashes into slashes, for comparing relative paths. */
148
+ function normalize(file) {
149
+ const slashed = file.replaceAll('\\', '/');
150
+ const absolute = slashed.startsWith('/');
151
+ const segments = [];
152
+ for (const segment of slashed.split('/')) {
153
+ if (segment === '' || segment === '.')
154
+ continue;
155
+ if (segment !== '..')
156
+ segments.push(segment);
157
+ else if (segments.length > 0 && segments.at(-1) !== '..')
158
+ segments.pop();
159
+ else if (!absolute)
160
+ segments.push(segment);
161
+ }
162
+ const joined = segments.join('/');
163
+ const normal = absolute ? `/${joined}` : joined || '.';
164
+ return slashed.endsWith('/') && joined !== '' ? `${normal}/` : normal;
165
+ }
166
+ function parseServers(text, entrypoint) {
167
+ if (text === undefined)
168
+ return `has no ${entrypoint}`;
169
+ let config;
170
+ try {
171
+ config = JSON.parse(text);
172
+ }
173
+ catch {
174
+ return `has a ${entrypoint} that isn't JSON`;
175
+ }
176
+ const servers = isRecord(config) ? config['mcpServers'] : undefined;
177
+ const entries = isRecord(servers) ? Object.entries(servers) : [];
178
+ const valid = entries.filter((entry) => isRecord(entry[1]));
179
+ if (entries.length === 0 || valid.length < entries.length)
180
+ return `has no mcpServers in ${entrypoint}`;
181
+ return valid;
182
+ }
183
+ // Chat runs remote servers only, and can't fill environment variables.
184
+ function serverProblems(server) {
185
+ const problems = [];
186
+ const { headers, type, url } = server;
187
+ if (type !== 'http' && type !== 'sse') {
188
+ const kind = type === undefined ? 'has no type, so it is stdio' : `is ${JSON.stringify(type)}`;
189
+ problems.push(`${kind}; claude.ai runs only http and sse servers`);
190
+ }
191
+ if (typeof url !== 'string')
192
+ problems.push(`has no url`);
193
+ const values = [url, ...(isRecord(headers) ? Object.values(headers) : [])];
194
+ if (values.some((value) => typeof value === 'string' && PLACEHOLDER.test(value))) {
195
+ problems.push(`has a \${…} placeholder in its url or headers, which claude.ai can't fill`);
196
+ }
197
+ return problems;
198
+ }
199
+ //# sourceMappingURL=claude-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-plugin.js","sourceRoot":"","sources":["../../../src/lib/atk-schemas/claude-plugin.ts"],"names":[],"mappings":"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"}
@@ -8,12 +8,15 @@
8
8
  * - The CLI vendors them (`pnpm sync-cli` → apps/cli/src/lib/atk-schemas/) and
9
9
  * re-exports them from its schemas barrel, so `scripts/export-schemas.ts` (and
10
10
  * through it the .NET API's vendored JSON Schemas) still exports them.
11
+ * - `resolveClaudePlugin` is the claude.ai plugin rules, which `@atk/claude-plugins`
12
+ * and the API's bundle publish both apply (ATK-747).
11
13
  * - `withoutNullOptionals` (and `withNullOptionalsAsAbsent`, a schema that
12
14
  * applies it) is how the API, the API client and the CLI read a published
13
15
  * registry file (`registry.json`, `bundle.json`, an asset's `manifest.json`):
14
16
  * a `null` optional object property reads as absent.
15
17
  */
16
18
  export { type Bundle, BundleAssetRef, BundleSchema } from './bundle.ts';
19
+ export { CLAUDE_PLUGIN_TYPE_DIRS, type ClaudePlugin, type ClaudePluginAssetType, type ClaudePluginProblem, type ClaudePluginRegistry, type ClaudePluginSkill, isClaudePlugin, resolveClaudePlugin, type ResolvedClaudePlugin, } from './claude-plugin.ts';
17
20
  export { AssetDependency, AssetType as AssetTypeSchema, HookConfig, HookEventBinding, type Manifest, ManifestSchema, SecurityBlock, } from './manifest.ts';
18
21
  export { withNullOptionalsAsAbsent, withoutNullOptionals } from './null-optionals.ts';
19
22
  export { DeprecatedEntry, type Registry, RegistryAsset, type RegistryAssetVersion, RegistryAssetVersionSchema, type RegistryAssetVersionsMap, RegistryAssetVersionsMapSchema, RegistryBundle, RegistrySchema, } from './registry.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-schemas/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,KAAK,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EACL,eAAe,EACf,SAAS,IAAI,eAAe,EAC5B,UAAU,EACV,gBAAgB,EAChB,KAAK,QAAQ,EACb,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EACL,eAAe,EACf,KAAK,QAAQ,EACb,aAAa,EACb,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,8BAA8B,EAC9B,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-schemas/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,KAAK,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EACL,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,cAAc,EACd,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,SAAS,IAAI,eAAe,EAC5B,UAAU,EACV,gBAAgB,EAChB,KAAK,QAAQ,EACb,cAAc,EACd,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EACL,eAAe,EACf,KAAK,QAAQ,EACb,aAAa,EACb,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,wBAAwB,EAC7B,8BAA8B,EAC9B,cAAc,EACd,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}