@intentic/extension-manifest 1.176.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 (114) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/bundle.d.ts +4 -0
  4. package/dist/bundle.d.ts.map +1 -0
  5. package/dist/bundle.js +22 -0
  6. package/dist/bundle.js.map +1 -0
  7. package/dist/contribution-point.d.ts +7 -0
  8. package/dist/contribution-point.d.ts.map +1 -0
  9. package/dist/contribution-point.js +2 -0
  10. package/dist/contribution-point.js.map +1 -0
  11. package/dist/index.d.ts +8 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +8 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/json-schema.d.ts +4 -0
  16. package/dist/json-schema.d.ts.map +1 -0
  17. package/dist/json-schema.js +33 -0
  18. package/dist/json-schema.js.map +1 -0
  19. package/dist/manifest.d.ts +300 -0
  20. package/dist/manifest.d.ts.map +1 -0
  21. package/dist/manifest.js +46 -0
  22. package/dist/manifest.js.map +1 -0
  23. package/dist/mark.d.ts +6 -0
  24. package/dist/mark.d.ts.map +1 -0
  25. package/dist/mark.js +12 -0
  26. package/dist/mark.js.map +1 -0
  27. package/dist/permissions.d.ts +2 -0
  28. package/dist/permissions.d.ts.map +1 -0
  29. package/dist/permissions.js +21 -0
  30. package/dist/permissions.js.map +1 -0
  31. package/dist/points/agent.d.ts +13 -0
  32. package/dist/points/agent.d.ts.map +1 -0
  33. package/dist/points/agent.js +10 -0
  34. package/dist/points/agent.js.map +1 -0
  35. package/dist/points/automation-templates.d.ts +67 -0
  36. package/dist/points/automation-templates.d.ts.map +1 -0
  37. package/dist/points/automation-templates.js +47 -0
  38. package/dist/points/automation-templates.js.map +1 -0
  39. package/dist/points/bin.d.ts +7 -0
  40. package/dist/points/bin.d.ts.map +1 -0
  41. package/dist/points/bin.js +10 -0
  42. package/dist/points/bin.js.map +1 -0
  43. package/dist/points/capabilities.d.ts +352 -0
  44. package/dist/points/capabilities.d.ts.map +1 -0
  45. package/dist/points/capabilities.js +131 -0
  46. package/dist/points/capabilities.js.map +1 -0
  47. package/dist/points/commands.d.ts +21 -0
  48. package/dist/points/commands.d.ts.map +1 -0
  49. package/dist/points/commands.js +23 -0
  50. package/dist/points/commands.js.map +1 -0
  51. package/dist/points/documents.d.ts +15 -0
  52. package/dist/points/documents.d.ts.map +1 -0
  53. package/dist/points/documents.js +14 -0
  54. package/dist/points/documents.js.map +1 -0
  55. package/dist/points/environment.d.ts +13 -0
  56. package/dist/points/environment.d.ts.map +1 -0
  57. package/dist/points/environment.js +14 -0
  58. package/dist/points/environment.js.map +1 -0
  59. package/dist/points/files.d.ts +15 -0
  60. package/dist/points/files.d.ts.map +1 -0
  61. package/dist/points/files.js +20 -0
  62. package/dist/points/files.js.map +1 -0
  63. package/dist/points/index.d.ts +609 -0
  64. package/dist/points/index.d.ts.map +1 -0
  65. package/dist/points/index.js +44 -0
  66. package/dist/points/index.js.map +1 -0
  67. package/dist/points/listener.d.ts +51 -0
  68. package/dist/points/listener.d.ts.map +1 -0
  69. package/dist/points/listener.js +44 -0
  70. package/dist/points/listener.js.map +1 -0
  71. package/dist/points/processes.d.ts +23 -0
  72. package/dist/points/processes.d.ts.map +1 -0
  73. package/dist/points/processes.js +15 -0
  74. package/dist/points/processes.js.map +1 -0
  75. package/dist/points/settings.d.ts +37 -0
  76. package/dist/points/settings.d.ts.map +1 -0
  77. package/dist/points/settings.js +24 -0
  78. package/dist/points/settings.js.map +1 -0
  79. package/dist/points/viewers.d.ts +25 -0
  80. package/dist/points/viewers.d.ts.map +1 -0
  81. package/dist/points/viewers.js +17 -0
  82. package/dist/points/viewers.js.map +1 -0
  83. package/dist/points/views.d.ts +27 -0
  84. package/dist/points/views.d.ts.map +1 -0
  85. package/dist/points/views.js +18 -0
  86. package/dist/points/views.js.map +1 -0
  87. package/dist/powers-diff.d.ts +8 -0
  88. package/dist/powers-diff.d.ts.map +1 -0
  89. package/dist/powers-diff.js +77 -0
  90. package/dist/powers-diff.js.map +1 -0
  91. package/intentic-extension.schema.json +1341 -0
  92. package/package.json +49 -0
  93. package/src/bundle.ts +41 -0
  94. package/src/contribution-point.ts +26 -0
  95. package/src/index.ts +7 -0
  96. package/src/json-schema.ts +62 -0
  97. package/src/manifest.ts +104 -0
  98. package/src/mark.ts +34 -0
  99. package/src/permissions.ts +36 -0
  100. package/src/points/agent.ts +17 -0
  101. package/src/points/automation-templates.ts +84 -0
  102. package/src/points/bin.ts +15 -0
  103. package/src/points/capabilities.ts +271 -0
  104. package/src/points/commands.ts +44 -0
  105. package/src/points/documents.ts +31 -0
  106. package/src/points/environment.ts +24 -0
  107. package/src/points/files.ts +54 -0
  108. package/src/points/index.ts +73 -0
  109. package/src/points/listener.ts +81 -0
  110. package/src/points/processes.ts +20 -0
  111. package/src/points/settings.ts +31 -0
  112. package/src/points/viewers.ts +36 -0
  113. package/src/points/views.ts +33 -0
  114. package/src/powers-diff.ts +100 -0
@@ -0,0 +1,21 @@
1
+ const escapeRegExp = (literal) => literal.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2
+ const compile = (entry) => {
3
+ const spaceIndex = entry.indexOf(" ");
4
+ if (spaceIndex < 0) {
5
+ throw new Error(`invalid sandbox permission "${entry}" — expected "<METHOD> <path-glob>", e.g. "GET /panels"`);
6
+ }
7
+ const method = entry.slice(0, spaceIndex).trim().toUpperCase();
8
+ const glob = entry.slice(spaceIndex + 1).trim();
9
+ const source = `^${glob.split("*").map(escapeRegExp).join("[^/]+")}$`;
10
+ const regex = new RegExp(source);
11
+ return { method, test: (path) => regex.test(path) };
12
+ };
13
+ export const sandboxRouteAllowed = (permissions, method, path) => {
14
+ const route = path.split("?")[0] ?? path;
15
+ const wanted = method.toUpperCase();
16
+ return permissions.some((entry) => {
17
+ const compiled = compile(entry);
18
+ return compiled.method === wanted && compiled.test(route);
19
+ });
20
+ };
21
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AASjG,MAAM,OAAO,GAAG,CAAC,KAAa,EAAiB,EAAE;IAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,yDAAyD,CAAC,CAAC;IACnH,CAAC;IACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACtE,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACxD,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAA8B,EAAE,MAAc,EAAE,IAAY,EAAW,EAAE;IACzG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,OAAO,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from "zod";
2
+ export declare const AgentContributionSchema: z.ZodObject<{
3
+ path: z.ZodOptional<z.ZodString>;
4
+ }, z.core.$strip>;
5
+ export type AgentContribution = z.infer<typeof AgentContributionSchema>;
6
+ export declare const agentPoint: {
7
+ readonly name: "agent";
8
+ readonly description: "Declare that this checkout is also a Claude Code plugin, so the agent picks up its skills, agents, hooks, commands and MCP servers each turn. The daemon hands the directory to the plugin loader and never parses what is in it.";
9
+ readonly schema: z.ZodObject<{
10
+ path: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ };
13
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/points/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,uBAAuB;;iBAElC,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,UAAU;mBACb,OAAO;0BAET,mOAAmO;;;;CAErM,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ export const AgentContributionSchema = z.object({
3
+ path: z.string().optional().describe("Relative to the extension checkout. Absent ⇒ the checkout root."),
4
+ });
5
+ export const agentPoint = {
6
+ name: "agent",
7
+ description: "Declare that this checkout is also a Claude Code plugin, so the agent picks up its skills, agents, hooks, commands and MCP servers each turn. The daemon hands the directory to the plugin loader and never parses what is in it.",
8
+ schema: AgentContributionSchema,
9
+ };
10
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/points/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;CAC1G,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,IAAI,EAAE,OAAO;IACb,WAAW,EACP,mOAAmO;IACvO,MAAM,EAAE,uBAAuB;CACG,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { z } from "zod";
2
+ export declare const AutomationTemplateContributionSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ title: z.ZodString;
5
+ logo: z.ZodOptional<z.ZodString>;
6
+ icon: z.ZodOptional<z.ZodString>;
7
+ requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
8
+ trigger: z.ZodObject<{
9
+ kind: z.ZodEnum<{
10
+ event: "event";
11
+ listener: "listener";
12
+ schedule: "schedule";
13
+ workspace: "workspace";
14
+ }>;
15
+ cron: z.ZodOptional<z.ZodString>;
16
+ provider: z.ZodOptional<z.ZodString>;
17
+ eventType: z.ZodOptional<z.ZodString>;
18
+ event: z.ZodOptional<z.ZodString>;
19
+ }, z.core.$strip>;
20
+ guard: z.ZodOptional<z.ZodString>;
21
+ holdForSeconds: z.ZodOptional<z.ZodNumber>;
22
+ prompt: z.ZodString;
23
+ note: z.ZodOptional<z.ZodString>;
24
+ setup: z.ZodOptional<z.ZodString>;
25
+ description: z.ZodOptional<z.ZodString>;
26
+ offer: z.ZodOptional<z.ZodEnum<{
27
+ configure: "configure";
28
+ create: "create";
29
+ }>>;
30
+ chore: z.ZodOptional<z.ZodBoolean>;
31
+ }, z.core.$strip>;
32
+ export type AutomationTemplateContribution = z.infer<typeof AutomationTemplateContributionSchema>;
33
+ export declare const automationTemplatesPoint: {
34
+ readonly name: "automationTemplates";
35
+ readonly description: "Starting points this pack offers in the automation composer — a trigger, a prompt written for that trigger's payload, and whatever guard makes it safe to leave on. Declared by whoever knows the service rather than by the composer, so they appear when your pack is installed and disappear with it. Pure prefill: creating one makes an ordinary automation.";
36
+ readonly schema: z.ZodArray<z.ZodObject<{
37
+ id: z.ZodString;
38
+ title: z.ZodString;
39
+ logo: z.ZodOptional<z.ZodString>;
40
+ icon: z.ZodOptional<z.ZodString>;
41
+ requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
+ trigger: z.ZodObject<{
43
+ kind: z.ZodEnum<{
44
+ event: "event";
45
+ listener: "listener";
46
+ schedule: "schedule";
47
+ workspace: "workspace";
48
+ }>;
49
+ cron: z.ZodOptional<z.ZodString>;
50
+ provider: z.ZodOptional<z.ZodString>;
51
+ eventType: z.ZodOptional<z.ZodString>;
52
+ event: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strip>;
54
+ guard: z.ZodOptional<z.ZodString>;
55
+ holdForSeconds: z.ZodOptional<z.ZodNumber>;
56
+ prompt: z.ZodString;
57
+ note: z.ZodOptional<z.ZodString>;
58
+ setup: z.ZodOptional<z.ZodString>;
59
+ description: z.ZodOptional<z.ZodString>;
60
+ offer: z.ZodOptional<z.ZodEnum<{
61
+ configure: "configure";
62
+ create: "create";
63
+ }>>;
64
+ chore: z.ZodOptional<z.ZodBoolean>;
65
+ }, z.core.$strip>>;
66
+ };
67
+ //# sourceMappingURL=automation-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-templates.d.ts","sourceRoot":"","sources":["../../src/points/automation-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,eAAO,MAAM,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4D/C,CAAC;AACH,MAAM,MAAM,8BAA8B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;AAElG,eAAO,MAAM,wBAAwB;mBAC3B,qBAAqB;0BAEvB,mWAAmW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAErU,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ export const AutomationTemplateContributionSchema = z.object({
3
+ id: z
4
+ .string()
5
+ .regex(/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/)
6
+ .describe('Prefills the automation name, and is what "does one of these exist already" is asked by — so spell it as an id, not as prose.'),
7
+ title: z.string().min(1),
8
+ logo: z.string().min(1).optional().describe("A simple-icons slug for the card."),
9
+ icon: z.string().min(1).optional().describe("A name from the host's icon set, drawn when no simple-icons slug fits."),
10
+ requires: z
11
+ .array(z.string().min(1))
12
+ .optional()
13
+ .describe("Capability providers that make this template work — any one connected is enough (fixing CI rides github or gitlab). Omitted ⇒ nothing to connect, so it is always offered."),
14
+ trigger: z
15
+ .object({
16
+ kind: z.enum(["schedule", "event", "listener", "workspace"]),
17
+ cron: z.string().min(1).optional(),
18
+ provider: z.string().min(1).optional(),
19
+ eventType: z.string().min(1).optional(),
20
+ event: z.string().min(1).optional(),
21
+ })
22
+ .describe("What wakes it. Checked against the real trigger schema when the daemon builds the catalogue, so a template can never offer one that would be refused."),
23
+ guard: z
24
+ .string()
25
+ .min(1)
26
+ .optional()
27
+ .describe("A condition that must hold before the turn runs — what makes a template safe to leave switched on."),
28
+ holdForSeconds: z.number().int().positive().optional().describe("Wait this long and coalesce repeats, rather than firing on every event."),
29
+ prompt: z.string().min(1).describe("The turn this starts. You own the trigger's payload vocabulary, so you own the prompt that reads it."),
30
+ note: z.string().min(1).optional(),
31
+ setup: z.string().min(1).optional().describe("What the user must do themselves before this can work."),
32
+ description: z.string().min(1).optional(),
33
+ offer: z
34
+ .enum(["create", "configure"])
35
+ .optional()
36
+ .describe("Absent ⇒ it waits in the gallery, where you go once you know what you want. `create` puts a card on the page that makes it, switched off, in one click. `configure` puts one there that opens the dialog prefilled, for a template that cannot work unconfigured. Both are for what a user would never think to go looking for — mark everything as offered and you have rebuilt the gallery with extra steps."),
37
+ chore: z
38
+ .boolean()
39
+ .optional()
40
+ .describe("Whether what this makes watches THIS codebase rather than the outside world. Declared rather than read off the trigger — a nightly dependency sweep and a nightly Stripe poll are both schedules."),
41
+ });
42
+ export const automationTemplatesPoint = {
43
+ name: "automationTemplates",
44
+ description: "Starting points this pack offers in the automation composer — a trigger, a prompt written for that trigger's payload, and whatever guard makes it safe to leave on. Declared by whoever knows the service rather than by the composer, so they appear when your pack is installed and disappear with it. Pure prefill: creating one makes an ordinary automation.",
45
+ schema: z.array(AutomationTemplateContributionSchema),
46
+ };
47
+ //# sourceMappingURL=automation-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-templates.js","sourceRoot":"","sources":["../../src/points/automation-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAGzD,EAAE,EAAE,CAAC;SACA,MAAM,EAAE;SACR,KAAK,CAAC,6BAA6B,CAAC;SACpC,QAAQ,CAAC,+HAA+H,CAAC;IAC9I,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAChF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;IAGrH,QAAQ,EAAE,CAAC;SACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,QAAQ,EAAE;SACV,QAAQ,CACL,4KAA4K,CAC/K;IAGL,OAAO,EAAE,CAAC;SACL,MAAM,CAAC;QACJ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACtC,CAAC;SACD,QAAQ,CACL,uJAAuJ,CAC1J;IACL,KAAK,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,oGAAoG,CAAC;IACnH,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IAC1I,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sGAAsG,CAAC;IAC1I,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IACtG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAMzC,KAAK,EAAE,CAAC;SACH,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;SAC7B,QAAQ,EAAE;SACV,QAAQ,CACL,gZAAgZ,CACnZ;IAGL,KAAK,EAAE,CAAC;SACH,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACL,mMAAmM,CACtM;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACP,mWAAmW;IACvW,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,oCAAoC,CAAC;CACnB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { z } from "zod";
2
+ export declare const binPoint: {
3
+ readonly name: "bin";
4
+ readonly description: "A checkout-relative directory of executables the daemon puts on the agent's PATH every turn — how you ship the agent a command-line tool. The files are the approved code themselves: they ride the pinned checkout, and the daemon only adds the directory to PATH.";
5
+ readonly schema: z.ZodString;
6
+ };
7
+ //# sourceMappingURL=bin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../../src/points/bin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,QAAQ;mBACX,KAAK;0BAEP,sQAAsQ;;CAKxO,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { z } from "zod";
2
+ export const binPoint = {
3
+ name: "bin",
4
+ description: "A checkout-relative directory of executables the daemon puts on the agent's PATH every turn — how you ship the agent a command-line tool. The files are the approved code themselves: they ride the pinned checkout, and the daemon only adds the directory to PATH.",
5
+ schema: z
6
+ .string()
7
+ .min(1)
8
+ .refine((value) => !value.split("/").includes(".."), { message: "bin must stay inside the checkout" }),
9
+ };
10
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/points/bin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,IAAI,EAAE,KAAK;IACX,WAAW,EACP,sQAAsQ;IAC1Q,MAAM,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC;CACxE,CAAC"}
@@ -0,0 +1,352 @@
1
+ import { z } from "zod";
2
+ export declare const CapabilityFieldSchema: z.ZodObject<{
3
+ key: z.ZodString;
4
+ label: z.ZodString;
5
+ placeholder: z.ZodOptional<z.ZodString>;
6
+ secret: z.ZodOptional<z.ZodBoolean>;
7
+ optional: z.ZodOptional<z.ZodBoolean>;
8
+ multiline: z.ZodOptional<z.ZodBoolean>;
9
+ boolean: z.ZodOptional<z.ZodBoolean>;
10
+ hint: z.ZodOptional<z.ZodString>;
11
+ rebuild: z.ZodOptional<z.ZodBoolean>;
12
+ default: z.ZodOptional<z.ZodString>;
13
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
14
+ value: z.ZodString;
15
+ label: z.ZodString;
16
+ }, z.core.$strip>>>;
17
+ when: z.ZodOptional<z.ZodString>;
18
+ value: z.ZodOptional<z.ZodString>;
19
+ totp: z.ZodOptional<z.ZodBoolean>;
20
+ }, z.core.$strip>;
21
+ export type CapabilityField = z.infer<typeof CapabilityFieldSchema>;
22
+ export declare const fieldApplies: (field: CapabilityField, values: Readonly<Record<string, unknown>>) => boolean;
23
+ export declare const CapabilityContributionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
24
+ id: z.ZodString;
25
+ catalog: z.ZodObject<{
26
+ logo: z.ZodOptional<z.ZodString>;
27
+ icon: z.ZodOptional<z.ZodString>;
28
+ name: z.ZodString;
29
+ description: z.ZodString;
30
+ category: z.ZodString;
31
+ hint: z.ZodOptional<z.ZodString>;
32
+ guide: z.ZodOptional<z.ZodObject<{
33
+ url: z.ZodOptional<z.ZodString>;
34
+ urlFromField: z.ZodOptional<z.ZodString>;
35
+ path: z.ZodOptional<z.ZodString>;
36
+ linkLabel: z.ZodOptional<z.ZodString>;
37
+ scopes: z.ZodOptional<z.ZodString>;
38
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
39
+ }, z.core.$strip>>;
40
+ }, z.core.$strip>;
41
+ kind: z.ZodLiteral<"cli">;
42
+ fields: z.ZodArray<z.ZodObject<{
43
+ key: z.ZodString;
44
+ label: z.ZodString;
45
+ placeholder: z.ZodOptional<z.ZodString>;
46
+ secret: z.ZodOptional<z.ZodBoolean>;
47
+ optional: z.ZodOptional<z.ZodBoolean>;
48
+ multiline: z.ZodOptional<z.ZodBoolean>;
49
+ boolean: z.ZodOptional<z.ZodBoolean>;
50
+ hint: z.ZodOptional<z.ZodString>;
51
+ rebuild: z.ZodOptional<z.ZodBoolean>;
52
+ default: z.ZodOptional<z.ZodString>;
53
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
54
+ value: z.ZodString;
55
+ label: z.ZodString;
56
+ }, z.core.$strip>>>;
57
+ when: z.ZodOptional<z.ZodString>;
58
+ value: z.ZodOptional<z.ZodString>;
59
+ totp: z.ZodOptional<z.ZodBoolean>;
60
+ }, z.core.$strip>>;
61
+ env: z.ZodRecord<z.ZodString, z.ZodString>;
62
+ skill: z.ZodString;
63
+ fragment: z.ZodOptional<z.ZodString>;
64
+ }, z.core.$strip>, z.ZodObject<{
65
+ id: z.ZodString;
66
+ catalog: z.ZodObject<{
67
+ logo: z.ZodOptional<z.ZodString>;
68
+ icon: z.ZodOptional<z.ZodString>;
69
+ name: z.ZodString;
70
+ description: z.ZodString;
71
+ category: z.ZodString;
72
+ hint: z.ZodOptional<z.ZodString>;
73
+ guide: z.ZodOptional<z.ZodObject<{
74
+ url: z.ZodOptional<z.ZodString>;
75
+ urlFromField: z.ZodOptional<z.ZodString>;
76
+ path: z.ZodOptional<z.ZodString>;
77
+ linkLabel: z.ZodOptional<z.ZodString>;
78
+ scopes: z.ZodOptional<z.ZodString>;
79
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
80
+ }, z.core.$strip>>;
81
+ }, z.core.$strip>;
82
+ fields: z.ZodArray<z.ZodObject<{
83
+ key: z.ZodString;
84
+ label: z.ZodString;
85
+ placeholder: z.ZodOptional<z.ZodString>;
86
+ secret: z.ZodOptional<z.ZodBoolean>;
87
+ optional: z.ZodOptional<z.ZodBoolean>;
88
+ multiline: z.ZodOptional<z.ZodBoolean>;
89
+ boolean: z.ZodOptional<z.ZodBoolean>;
90
+ hint: z.ZodOptional<z.ZodString>;
91
+ rebuild: z.ZodOptional<z.ZodBoolean>;
92
+ default: z.ZodOptional<z.ZodString>;
93
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
94
+ value: z.ZodString;
95
+ label: z.ZodString;
96
+ }, z.core.$strip>>>;
97
+ when: z.ZodOptional<z.ZodString>;
98
+ value: z.ZodOptional<z.ZodString>;
99
+ totp: z.ZodOptional<z.ZodBoolean>;
100
+ }, z.core.$strip>>;
101
+ kind: z.ZodLiteral<"browser">;
102
+ loginUrl: z.ZodOptional<z.ZodURL>;
103
+ homeUrl: z.ZodOptional<z.ZodURL>;
104
+ skill: z.ZodString;
105
+ }, z.core.$strip>, z.ZodObject<{
106
+ id: z.ZodString;
107
+ catalog: z.ZodObject<{
108
+ logo: z.ZodOptional<z.ZodString>;
109
+ icon: z.ZodOptional<z.ZodString>;
110
+ name: z.ZodString;
111
+ description: z.ZodString;
112
+ category: z.ZodString;
113
+ hint: z.ZodOptional<z.ZodString>;
114
+ guide: z.ZodOptional<z.ZodObject<{
115
+ url: z.ZodOptional<z.ZodString>;
116
+ urlFromField: z.ZodOptional<z.ZodString>;
117
+ path: z.ZodOptional<z.ZodString>;
118
+ linkLabel: z.ZodOptional<z.ZodString>;
119
+ scopes: z.ZodOptional<z.ZodString>;
120
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
121
+ }, z.core.$strip>>;
122
+ }, z.core.$strip>;
123
+ fields: z.ZodArray<z.ZodObject<{
124
+ key: z.ZodString;
125
+ label: z.ZodString;
126
+ placeholder: z.ZodOptional<z.ZodString>;
127
+ secret: z.ZodOptional<z.ZodBoolean>;
128
+ optional: z.ZodOptional<z.ZodBoolean>;
129
+ multiline: z.ZodOptional<z.ZodBoolean>;
130
+ boolean: z.ZodOptional<z.ZodBoolean>;
131
+ hint: z.ZodOptional<z.ZodString>;
132
+ rebuild: z.ZodOptional<z.ZodBoolean>;
133
+ default: z.ZodOptional<z.ZodString>;
134
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
135
+ value: z.ZodString;
136
+ label: z.ZodString;
137
+ }, z.core.$strip>>>;
138
+ when: z.ZodOptional<z.ZodString>;
139
+ value: z.ZodOptional<z.ZodString>;
140
+ totp: z.ZodOptional<z.ZodBoolean>;
141
+ }, z.core.$strip>>;
142
+ kind: z.ZodLiteral<"host">;
143
+ skill: z.ZodString;
144
+ }, z.core.$strip>, z.ZodObject<{
145
+ id: z.ZodString;
146
+ catalog: z.ZodObject<{
147
+ logo: z.ZodOptional<z.ZodString>;
148
+ icon: z.ZodOptional<z.ZodString>;
149
+ name: z.ZodString;
150
+ description: z.ZodString;
151
+ category: z.ZodString;
152
+ hint: z.ZodOptional<z.ZodString>;
153
+ guide: z.ZodOptional<z.ZodObject<{
154
+ url: z.ZodOptional<z.ZodString>;
155
+ urlFromField: z.ZodOptional<z.ZodString>;
156
+ path: z.ZodOptional<z.ZodString>;
157
+ linkLabel: z.ZodOptional<z.ZodString>;
158
+ scopes: z.ZodOptional<z.ZodString>;
159
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
160
+ }, z.core.$strip>>;
161
+ }, z.core.$strip>;
162
+ fields: z.ZodArray<z.ZodObject<{
163
+ key: z.ZodString;
164
+ label: z.ZodString;
165
+ placeholder: z.ZodOptional<z.ZodString>;
166
+ secret: z.ZodOptional<z.ZodBoolean>;
167
+ optional: z.ZodOptional<z.ZodBoolean>;
168
+ multiline: z.ZodOptional<z.ZodBoolean>;
169
+ boolean: z.ZodOptional<z.ZodBoolean>;
170
+ hint: z.ZodOptional<z.ZodString>;
171
+ rebuild: z.ZodOptional<z.ZodBoolean>;
172
+ default: z.ZodOptional<z.ZodString>;
173
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
174
+ value: z.ZodString;
175
+ label: z.ZodString;
176
+ }, z.core.$strip>>>;
177
+ when: z.ZodOptional<z.ZodString>;
178
+ value: z.ZodOptional<z.ZodString>;
179
+ totp: z.ZodOptional<z.ZodBoolean>;
180
+ }, z.core.$strip>>;
181
+ kind: z.ZodLiteral<"agent">;
182
+ }, z.core.$strip>], "kind">;
183
+ export type CapabilityContribution = z.infer<typeof CapabilityContributionSchema>;
184
+ export type SkillContribution = Extract<CapabilityContribution, {
185
+ skill: string;
186
+ }>;
187
+ export declare const contributionDiscriminator: (kind: string) => string | undefined;
188
+ export declare const capabilitiesPoint: {
189
+ readonly name: "capabilities";
190
+ readonly description: 'Capability cards this pack adds to the "+" grid — a connected CLI tool, a site the agent acts on as the owner through the shared browser, an operating system pack, or a preset over a core kind. The card and its form are data here; the machinery that acts on them is core, which is why a card may only name one of these four kinds.';
191
+ readonly schema: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
192
+ id: z.ZodString;
193
+ catalog: z.ZodObject<{
194
+ logo: z.ZodOptional<z.ZodString>;
195
+ icon: z.ZodOptional<z.ZodString>;
196
+ name: z.ZodString;
197
+ description: z.ZodString;
198
+ category: z.ZodString;
199
+ hint: z.ZodOptional<z.ZodString>;
200
+ guide: z.ZodOptional<z.ZodObject<{
201
+ url: z.ZodOptional<z.ZodString>;
202
+ urlFromField: z.ZodOptional<z.ZodString>;
203
+ path: z.ZodOptional<z.ZodString>;
204
+ linkLabel: z.ZodOptional<z.ZodString>;
205
+ scopes: z.ZodOptional<z.ZodString>;
206
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
207
+ }, z.core.$strip>>;
208
+ }, z.core.$strip>;
209
+ kind: z.ZodLiteral<"cli">;
210
+ fields: z.ZodArray<z.ZodObject<{
211
+ key: z.ZodString;
212
+ label: z.ZodString;
213
+ placeholder: z.ZodOptional<z.ZodString>;
214
+ secret: z.ZodOptional<z.ZodBoolean>;
215
+ optional: z.ZodOptional<z.ZodBoolean>;
216
+ multiline: z.ZodOptional<z.ZodBoolean>;
217
+ boolean: z.ZodOptional<z.ZodBoolean>;
218
+ hint: z.ZodOptional<z.ZodString>;
219
+ rebuild: z.ZodOptional<z.ZodBoolean>;
220
+ default: z.ZodOptional<z.ZodString>;
221
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
222
+ value: z.ZodString;
223
+ label: z.ZodString;
224
+ }, z.core.$strip>>>;
225
+ when: z.ZodOptional<z.ZodString>;
226
+ value: z.ZodOptional<z.ZodString>;
227
+ totp: z.ZodOptional<z.ZodBoolean>;
228
+ }, z.core.$strip>>;
229
+ env: z.ZodRecord<z.ZodString, z.ZodString>;
230
+ skill: z.ZodString;
231
+ fragment: z.ZodOptional<z.ZodString>;
232
+ }, z.core.$strip>, z.ZodObject<{
233
+ id: z.ZodString;
234
+ catalog: z.ZodObject<{
235
+ logo: z.ZodOptional<z.ZodString>;
236
+ icon: z.ZodOptional<z.ZodString>;
237
+ name: z.ZodString;
238
+ description: z.ZodString;
239
+ category: z.ZodString;
240
+ hint: z.ZodOptional<z.ZodString>;
241
+ guide: z.ZodOptional<z.ZodObject<{
242
+ url: z.ZodOptional<z.ZodString>;
243
+ urlFromField: z.ZodOptional<z.ZodString>;
244
+ path: z.ZodOptional<z.ZodString>;
245
+ linkLabel: z.ZodOptional<z.ZodString>;
246
+ scopes: z.ZodOptional<z.ZodString>;
247
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
248
+ }, z.core.$strip>>;
249
+ }, z.core.$strip>;
250
+ fields: z.ZodArray<z.ZodObject<{
251
+ key: z.ZodString;
252
+ label: z.ZodString;
253
+ placeholder: z.ZodOptional<z.ZodString>;
254
+ secret: z.ZodOptional<z.ZodBoolean>;
255
+ optional: z.ZodOptional<z.ZodBoolean>;
256
+ multiline: z.ZodOptional<z.ZodBoolean>;
257
+ boolean: z.ZodOptional<z.ZodBoolean>;
258
+ hint: z.ZodOptional<z.ZodString>;
259
+ rebuild: z.ZodOptional<z.ZodBoolean>;
260
+ default: z.ZodOptional<z.ZodString>;
261
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
262
+ value: z.ZodString;
263
+ label: z.ZodString;
264
+ }, z.core.$strip>>>;
265
+ when: z.ZodOptional<z.ZodString>;
266
+ value: z.ZodOptional<z.ZodString>;
267
+ totp: z.ZodOptional<z.ZodBoolean>;
268
+ }, z.core.$strip>>;
269
+ kind: z.ZodLiteral<"browser">;
270
+ loginUrl: z.ZodOptional<z.ZodURL>;
271
+ homeUrl: z.ZodOptional<z.ZodURL>;
272
+ skill: z.ZodString;
273
+ }, z.core.$strip>, z.ZodObject<{
274
+ id: z.ZodString;
275
+ catalog: z.ZodObject<{
276
+ logo: z.ZodOptional<z.ZodString>;
277
+ icon: z.ZodOptional<z.ZodString>;
278
+ name: z.ZodString;
279
+ description: z.ZodString;
280
+ category: z.ZodString;
281
+ hint: z.ZodOptional<z.ZodString>;
282
+ guide: z.ZodOptional<z.ZodObject<{
283
+ url: z.ZodOptional<z.ZodString>;
284
+ urlFromField: z.ZodOptional<z.ZodString>;
285
+ path: z.ZodOptional<z.ZodString>;
286
+ linkLabel: z.ZodOptional<z.ZodString>;
287
+ scopes: z.ZodOptional<z.ZodString>;
288
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
289
+ }, z.core.$strip>>;
290
+ }, z.core.$strip>;
291
+ fields: z.ZodArray<z.ZodObject<{
292
+ key: z.ZodString;
293
+ label: z.ZodString;
294
+ placeholder: z.ZodOptional<z.ZodString>;
295
+ secret: z.ZodOptional<z.ZodBoolean>;
296
+ optional: z.ZodOptional<z.ZodBoolean>;
297
+ multiline: z.ZodOptional<z.ZodBoolean>;
298
+ boolean: z.ZodOptional<z.ZodBoolean>;
299
+ hint: z.ZodOptional<z.ZodString>;
300
+ rebuild: z.ZodOptional<z.ZodBoolean>;
301
+ default: z.ZodOptional<z.ZodString>;
302
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
303
+ value: z.ZodString;
304
+ label: z.ZodString;
305
+ }, z.core.$strip>>>;
306
+ when: z.ZodOptional<z.ZodString>;
307
+ value: z.ZodOptional<z.ZodString>;
308
+ totp: z.ZodOptional<z.ZodBoolean>;
309
+ }, z.core.$strip>>;
310
+ kind: z.ZodLiteral<"host">;
311
+ skill: z.ZodString;
312
+ }, z.core.$strip>, z.ZodObject<{
313
+ id: z.ZodString;
314
+ catalog: z.ZodObject<{
315
+ logo: z.ZodOptional<z.ZodString>;
316
+ icon: z.ZodOptional<z.ZodString>;
317
+ name: z.ZodString;
318
+ description: z.ZodString;
319
+ category: z.ZodString;
320
+ hint: z.ZodOptional<z.ZodString>;
321
+ guide: z.ZodOptional<z.ZodObject<{
322
+ url: z.ZodOptional<z.ZodString>;
323
+ urlFromField: z.ZodOptional<z.ZodString>;
324
+ path: z.ZodOptional<z.ZodString>;
325
+ linkLabel: z.ZodOptional<z.ZodString>;
326
+ scopes: z.ZodOptional<z.ZodString>;
327
+ steps: z.ZodOptional<z.ZodArray<z.ZodString>>;
328
+ }, z.core.$strip>>;
329
+ }, z.core.$strip>;
330
+ fields: z.ZodArray<z.ZodObject<{
331
+ key: z.ZodString;
332
+ label: z.ZodString;
333
+ placeholder: z.ZodOptional<z.ZodString>;
334
+ secret: z.ZodOptional<z.ZodBoolean>;
335
+ optional: z.ZodOptional<z.ZodBoolean>;
336
+ multiline: z.ZodOptional<z.ZodBoolean>;
337
+ boolean: z.ZodOptional<z.ZodBoolean>;
338
+ hint: z.ZodOptional<z.ZodString>;
339
+ rebuild: z.ZodOptional<z.ZodBoolean>;
340
+ default: z.ZodOptional<z.ZodString>;
341
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
342
+ value: z.ZodString;
343
+ label: z.ZodString;
344
+ }, z.core.$strip>>>;
345
+ when: z.ZodOptional<z.ZodString>;
346
+ value: z.ZodOptional<z.ZodString>;
347
+ totp: z.ZodOptional<z.ZodBoolean>;
348
+ }, z.core.$strip>>;
349
+ kind: z.ZodLiteral<"agent">;
350
+ }, z.core.$strip>], "kind">>;
351
+ };
352
+ //# sourceMappingURL=capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/points/capabilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;iBA+EhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAepE,eAAO,MAAM,YAAY,UAAW,eAAe,UAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAG,OACtB,CAAC;AA2D5E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAmFnC,CAAC;AACP,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAcnF,eAAO,MAAM,yBAAyB,SAAU,MAAM,KAAG,MAAM,GAAG,SAA8D,CAAC;AAEjI,eAAO,MAAM,iBAAiB;mBACpB,cAAc;0BAEhB,4UAA4U;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAE9S,CAAC"}