@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.
- package/LICENSE +21 -0
- package/README.md +74 -0
- package/dist/bundle.d.ts +4 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +22 -0
- package/dist/bundle.js.map +1 -0
- package/dist/contribution-point.d.ts +7 -0
- package/dist/contribution-point.d.ts.map +1 -0
- package/dist/contribution-point.js +2 -0
- package/dist/contribution-point.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/json-schema.d.ts +4 -0
- package/dist/json-schema.d.ts.map +1 -0
- package/dist/json-schema.js +33 -0
- package/dist/json-schema.js.map +1 -0
- package/dist/manifest.d.ts +300 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +46 -0
- package/dist/manifest.js.map +1 -0
- package/dist/mark.d.ts +6 -0
- package/dist/mark.d.ts.map +1 -0
- package/dist/mark.js +12 -0
- package/dist/mark.js.map +1 -0
- package/dist/permissions.d.ts +2 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +21 -0
- package/dist/permissions.js.map +1 -0
- package/dist/points/agent.d.ts +13 -0
- package/dist/points/agent.d.ts.map +1 -0
- package/dist/points/agent.js +10 -0
- package/dist/points/agent.js.map +1 -0
- package/dist/points/automation-templates.d.ts +67 -0
- package/dist/points/automation-templates.d.ts.map +1 -0
- package/dist/points/automation-templates.js +47 -0
- package/dist/points/automation-templates.js.map +1 -0
- package/dist/points/bin.d.ts +7 -0
- package/dist/points/bin.d.ts.map +1 -0
- package/dist/points/bin.js +10 -0
- package/dist/points/bin.js.map +1 -0
- package/dist/points/capabilities.d.ts +352 -0
- package/dist/points/capabilities.d.ts.map +1 -0
- package/dist/points/capabilities.js +131 -0
- package/dist/points/capabilities.js.map +1 -0
- package/dist/points/commands.d.ts +21 -0
- package/dist/points/commands.d.ts.map +1 -0
- package/dist/points/commands.js +23 -0
- package/dist/points/commands.js.map +1 -0
- package/dist/points/documents.d.ts +15 -0
- package/dist/points/documents.d.ts.map +1 -0
- package/dist/points/documents.js +14 -0
- package/dist/points/documents.js.map +1 -0
- package/dist/points/environment.d.ts +13 -0
- package/dist/points/environment.d.ts.map +1 -0
- package/dist/points/environment.js +14 -0
- package/dist/points/environment.js.map +1 -0
- package/dist/points/files.d.ts +15 -0
- package/dist/points/files.d.ts.map +1 -0
- package/dist/points/files.js +20 -0
- package/dist/points/files.js.map +1 -0
- package/dist/points/index.d.ts +609 -0
- package/dist/points/index.d.ts.map +1 -0
- package/dist/points/index.js +44 -0
- package/dist/points/index.js.map +1 -0
- package/dist/points/listener.d.ts +51 -0
- package/dist/points/listener.d.ts.map +1 -0
- package/dist/points/listener.js +44 -0
- package/dist/points/listener.js.map +1 -0
- package/dist/points/processes.d.ts +23 -0
- package/dist/points/processes.d.ts.map +1 -0
- package/dist/points/processes.js +15 -0
- package/dist/points/processes.js.map +1 -0
- package/dist/points/settings.d.ts +37 -0
- package/dist/points/settings.d.ts.map +1 -0
- package/dist/points/settings.js +24 -0
- package/dist/points/settings.js.map +1 -0
- package/dist/points/viewers.d.ts +25 -0
- package/dist/points/viewers.d.ts.map +1 -0
- package/dist/points/viewers.js +17 -0
- package/dist/points/viewers.js.map +1 -0
- package/dist/points/views.d.ts +27 -0
- package/dist/points/views.d.ts.map +1 -0
- package/dist/points/views.js +18 -0
- package/dist/points/views.js.map +1 -0
- package/dist/powers-diff.d.ts +8 -0
- package/dist/powers-diff.d.ts.map +1 -0
- package/dist/powers-diff.js +77 -0
- package/dist/powers-diff.js.map +1 -0
- package/intentic-extension.schema.json +1341 -0
- package/package.json +49 -0
- package/src/bundle.ts +41 -0
- package/src/contribution-point.ts +26 -0
- package/src/index.ts +7 -0
- package/src/json-schema.ts +62 -0
- package/src/manifest.ts +104 -0
- package/src/mark.ts +34 -0
- package/src/permissions.ts +36 -0
- package/src/points/agent.ts +17 -0
- package/src/points/automation-templates.ts +84 -0
- package/src/points/bin.ts +15 -0
- package/src/points/capabilities.ts +271 -0
- package/src/points/commands.ts +44 -0
- package/src/points/documents.ts +31 -0
- package/src/points/environment.ts +24 -0
- package/src/points/files.ts +54 -0
- package/src/points/index.ts +73 -0
- package/src/points/listener.ts +81 -0
- package/src/points/processes.ts +20 -0
- package/src/points/settings.ts +31 -0
- package/src/points/viewers.ts +36 -0
- package/src/points/views.ts +33 -0
- package/src/powers-diff.ts +100 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { evaluateWhen, isWhenExpression, parseWhen } from "@intentic/base/when";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { MARK_FIELDS } from "../mark.js";
|
|
4
|
+
export const CapabilityFieldSchema = z.object({
|
|
5
|
+
key: z.string().regex(/^[a-zA-Z][a-zA-Z0-9]*$/),
|
|
6
|
+
label: z.string().min(1),
|
|
7
|
+
placeholder: z.string().optional(),
|
|
8
|
+
secret: z.boolean().optional().describe("Mask it, and never echo it back."),
|
|
9
|
+
optional: z.boolean().optional(),
|
|
10
|
+
multiline: z.boolean().optional(),
|
|
11
|
+
boolean: z
|
|
12
|
+
.boolean()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe('Render it as a switch, carrying "on"/"off". For an opt-in EXTRA rather than a decision: a two-option picker says the same thing but presents a choice the user must make to proceed, sized like the required fields around it. A switch always holds a value, so a field like this never blocks a submit.'),
|
|
15
|
+
hint: z
|
|
16
|
+
.string()
|
|
17
|
+
.optional()
|
|
18
|
+
.describe("A line under this control, for what the label alone cannot say — a host requirement, when a value takes effect. The card's own `hint` speaks for the whole card; this one is bound to the field it qualifies."),
|
|
19
|
+
rebuild: z
|
|
20
|
+
.boolean()
|
|
21
|
+
.optional()
|
|
22
|
+
.describe("This value only takes effect after the sandbox is rebuilt, because it rides the image overlay. Shown as a chip beside the label — two switches side by side, identical in every visible way, can otherwise cost five seconds or five minutes with no way to tell which."),
|
|
23
|
+
default: z.string().optional(),
|
|
24
|
+
options: z
|
|
25
|
+
.array(z.object({ value: z.string(), label: z.string() }))
|
|
26
|
+
.optional()
|
|
27
|
+
.describe("Turns the field into a select."),
|
|
28
|
+
when: z
|
|
29
|
+
.string()
|
|
30
|
+
.refine(isWhenExpression, { message: "not a valid `when` condition" })
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("Only show this field while a condition over the answers already given holds — `auth == 'key'`, `provider in ['ipsec', 'fortinet']`, `!advanced`. Supports `&&`, `||`, `!`, comparisons and `in`."),
|
|
33
|
+
value: z
|
|
34
|
+
.string()
|
|
35
|
+
.optional()
|
|
36
|
+
.describe('A fixed value baked into the config rather than asked for — how a card pins its discriminator (platform="reddit", provider="stripe"). Renders as nothing.'),
|
|
37
|
+
totp: z
|
|
38
|
+
.boolean()
|
|
39
|
+
.optional()
|
|
40
|
+
.describe("This field holds a TOTP seed — the base32 key or otpauth:// URI a service shows when enrolling an authenticator app. Declare it with `secret: true`. Unlike an ordinary secret it never enters the agent's environment: the daemon mints the six-digit codes on demand and only those cross."),
|
|
41
|
+
});
|
|
42
|
+
export const fieldApplies = (field, values) => field.when === undefined || evaluateWhen(parseWhen(field.when), values);
|
|
43
|
+
const CatalogSchema = z.object({
|
|
44
|
+
name: z.string().min(1),
|
|
45
|
+
...MARK_FIELDS,
|
|
46
|
+
description: z
|
|
47
|
+
.string()
|
|
48
|
+
.min(1)
|
|
49
|
+
.describe("ONE LINE — aim for 60 characters or fewer. The grid clamps it at two lines in a narrow pane, so a paragraph here is a paragraph the reader gets truncated. Everything longer belongs in `hint`."),
|
|
50
|
+
category: z.string().min(1),
|
|
51
|
+
hint: z
|
|
52
|
+
.string()
|
|
53
|
+
.optional()
|
|
54
|
+
.describe('The paragraph, shown under the add form and searched from the catalog — so the words that identify this card to someone hunting for it ("webauthn", "socket mode") belong here even when the tile cannot show them.'),
|
|
55
|
+
guide: z
|
|
56
|
+
.object({
|
|
57
|
+
url: z.string().optional(),
|
|
58
|
+
urlFromField: z.string().optional(),
|
|
59
|
+
path: z.string().optional(),
|
|
60
|
+
linkLabel: z.string().optional(),
|
|
61
|
+
scopes: z.string().optional(),
|
|
62
|
+
steps: z.array(z.string()).optional(),
|
|
63
|
+
})
|
|
64
|
+
.optional()
|
|
65
|
+
.describe("The walkthrough the install dialog renders for getting the credential this card asks for."),
|
|
66
|
+
});
|
|
67
|
+
const contributionBase = {
|
|
68
|
+
id: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
|
|
69
|
+
catalog: CatalogSchema,
|
|
70
|
+
fields: z.array(CapabilityFieldSchema),
|
|
71
|
+
};
|
|
72
|
+
export const CapabilityContributionSchema = z
|
|
73
|
+
.discriminatedUnion("kind", [
|
|
74
|
+
z.object({
|
|
75
|
+
...contributionBase,
|
|
76
|
+
kind: z.literal("cli"),
|
|
77
|
+
fields: z.array(CapabilityFieldSchema).min(1),
|
|
78
|
+
env: z
|
|
79
|
+
.record(z.string().regex(/^[A-Z][A-Z0-9_]*$/), z.string())
|
|
80
|
+
.describe("The environment the agent's shell gets, as value templates over the fields — `${field}` substitutes, `${field:uri}` percent-encodes. Each name is suffixed per instance."),
|
|
81
|
+
skill: z
|
|
82
|
+
.string()
|
|
83
|
+
.min(1)
|
|
84
|
+
.describe("Checkout-relative SKILL.md teaching the agent this tool. `${id}` in it is replaced with the instance name at apply time."),
|
|
85
|
+
fragment: z
|
|
86
|
+
.string()
|
|
87
|
+
.min(1)
|
|
88
|
+
.optional()
|
|
89
|
+
.describe("A Dockerfile fragment holding the client binary this tool needs (psql, mysql, whisper)."),
|
|
90
|
+
}),
|
|
91
|
+
z.object({
|
|
92
|
+
...contributionBase,
|
|
93
|
+
kind: z.literal("browser"),
|
|
94
|
+
loginUrl: z
|
|
95
|
+
.url()
|
|
96
|
+
.optional()
|
|
97
|
+
.describe("What the sign-in window opens; the profile it persists IS the credential. Optional so one card can be the generic one that asks for the URL on its form instead — but a card must either pin this or declare a field that supplies it, or the window opens on nothing."),
|
|
98
|
+
homeUrl: z
|
|
99
|
+
.url()
|
|
100
|
+
.optional()
|
|
101
|
+
.describe("Where that same profile opens once it HAS a session — the owner's own hands on the connected browser. Separate from loginUrl because for some platforms the login lives on another site entirely (YouTube signs in at accounts.google.com)."),
|
|
102
|
+
skill: z.string().min(1).describe("Checkout-relative SKILL.md teaching the agent this site's actions."),
|
|
103
|
+
}),
|
|
104
|
+
z.object({
|
|
105
|
+
...contributionBase,
|
|
106
|
+
kind: z.literal("host"),
|
|
107
|
+
skill: z.string().min(1).describe("Checkout-relative SKILL.md teaching the agent that machine's shell."),
|
|
108
|
+
}),
|
|
109
|
+
z.object({ ...contributionBase, kind: z.literal("agent") }),
|
|
110
|
+
])
|
|
111
|
+
.superRefine((spec, ctx) => {
|
|
112
|
+
if (spec.kind !== "cli") {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
for (const field of spec.fields.filter((candidate) => candidate.totp === true)) {
|
|
116
|
+
if (Object.values(spec.env).some((template) => template.includes(`\${${field.key}}`) || template.includes(`\${${field.key}:uri}`))) {
|
|
117
|
+
ctx.addIssue({
|
|
118
|
+
code: "custom",
|
|
119
|
+
message: `env must not reference the totp field "${field.key}" — the daemon mints codes from it instead`,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
const DISCRIMINATOR = { cli: "provider", browser: "platform", host: "platform", agent: undefined };
|
|
125
|
+
export const contributionDiscriminator = (kind) => DISCRIMINATOR[kind];
|
|
126
|
+
export const capabilitiesPoint = {
|
|
127
|
+
name: "capabilities",
|
|
128
|
+
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.',
|
|
129
|
+
schema: z.array(CapabilityContributionSchema),
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/points/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const CommandContributionSchema: z.ZodObject<{
|
|
3
|
+
command: z.ZodString;
|
|
4
|
+
title: z.ZodString;
|
|
5
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
6
|
+
keybinding: z.ZodOptional<z.ZodString>;
|
|
7
|
+
when: z.ZodOptional<z.ZodString>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export type CommandContribution = z.infer<typeof CommandContributionSchema>;
|
|
10
|
+
export declare const commandsPoint: {
|
|
11
|
+
readonly name: "commands";
|
|
12
|
+
readonly description: "Commands this extension may register handlers for, surfaced in the command palette. Title, icon and shortcut all come from here rather than from the registration call, because this is what the owner approved at install.";
|
|
13
|
+
readonly schema: z.ZodArray<z.ZodObject<{
|
|
14
|
+
command: z.ZodString;
|
|
15
|
+
title: z.ZodString;
|
|
16
|
+
icon: z.ZodOptional<z.ZodString>;
|
|
17
|
+
keybinding: z.ZodOptional<z.ZodString>;
|
|
18
|
+
when: z.ZodOptional<z.ZodString>;
|
|
19
|
+
}, z.core.$strip>>;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/points/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,yBAAyB;;;;;;iBA8BpC,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,aAAa;mBAChB,UAAU;0BAEZ,6NAA6N;;;;;;;;CAE/L,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { isWhenExpression } from "@intentic/base/when";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
export const CommandContributionSchema = z.object({
|
|
4
|
+
command: z.string().regex(/^[a-z0-9][a-z0-9-]*(\.[a-z0-9][a-z0-9-]*)+$/),
|
|
5
|
+
title: z.string().min(1).describe("What the command palette shows. The manifest's value wins over the one passed at registration."),
|
|
6
|
+
icon: z.string().optional().describe("A name from the host's icon set, drawn beside the title."),
|
|
7
|
+
keybinding: z
|
|
8
|
+
.string()
|
|
9
|
+
.regex(/^\S+$/)
|
|
10
|
+
.optional()
|
|
11
|
+
.describe('A global keyboard shortcut, e.g. "Mod+Shift+K" — `Mod` is ⌘ on Apple and Ctrl elsewhere. Declared here because a global shortcut is consequential: the owner approves it at install, and the host binds only what was approved.'),
|
|
12
|
+
when: z
|
|
13
|
+
.string()
|
|
14
|
+
.refine(isWhenExpression, { message: "not a valid `when` condition" })
|
|
15
|
+
.optional()
|
|
16
|
+
.describe("When the shortcut applies, as a condition over the shell's context keys — `tabSurface == 'chat'`, `!editableTarget`. Without one the chord is claimed everywhere, including inside a terminal where a bare key belongs to the program running in it. The command palette ignores this: a command is always runnable by name."),
|
|
17
|
+
});
|
|
18
|
+
export const commandsPoint = {
|
|
19
|
+
name: "commands",
|
|
20
|
+
description: "Commands this extension may register handlers for, surfaced in the command palette. Title, icon and shortcut all come from here rather than from the registration call, because this is what the owner approved at install.",
|
|
21
|
+
schema: z.array(CommandContributionSchema),
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/points/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,6CAA6C,CAAC;IACxE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,gGAAgG,CAAC;IACnI,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IAKhG,UAAU,EAAE,CAAC;SACR,MAAM,EAAE;SACR,KAAK,CAAC,OAAO,CAAC;SACd,QAAQ,EAAE;SACV,QAAQ,CACL,iOAAiO,CACpO;IASL,IAAI,EAAE,CAAC;SACF,MAAM,EAAE;SACR,MAAM,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;SACrE,QAAQ,EAAE;SACV,QAAQ,CACL,8TAA8T,CACjU;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,IAAI,EAAE,UAAU;IAChB,WAAW,EACP,6NAA6N;IACjO,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC;CACR,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const DocumentContributionSchema: z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
label: z.ZodString;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export type DocumentContribution = z.infer<typeof DocumentContributionSchema>;
|
|
7
|
+
export declare const documentsPoint: {
|
|
8
|
+
readonly name: "documents";
|
|
9
|
+
readonly description: "Per-directory documents this extension can offer. Your provider marks the rows in the Workspace tree it has something to say about, and the host opens your component as a tab.";
|
|
10
|
+
readonly schema: z.ZodArray<z.ZodObject<{
|
|
11
|
+
id: z.ZodString;
|
|
12
|
+
label: z.ZodString;
|
|
13
|
+
}, z.core.$strip>>;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/points/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,0BAA0B;;;iBASrC,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,cAAc;mBACjB,WAAW;0BAEb,iLAAiL;;;;;CAEnJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const DocumentContributionSchema = z.object({
|
|
3
|
+
id: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
|
|
4
|
+
label: z
|
|
5
|
+
.string()
|
|
6
|
+
.min(1)
|
|
7
|
+
.describe("The family's name, shown in the install dialog beside your other contributions. Per-row wording stays with the provider, which is the only thing that knows what it found."),
|
|
8
|
+
});
|
|
9
|
+
export const documentsPoint = {
|
|
10
|
+
name: "documents",
|
|
11
|
+
description: "Per-directory documents this extension can offer. Your provider marks the rows in the Workspace tree it has something to say about, and the host opens your component as a tab.",
|
|
12
|
+
schema: z.array(DocumentContributionSchema),
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/points/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;IAE5C,KAAK,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACL,4KAA4K,CAC/K;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,IAAI,EAAE,WAAW;IACjB,WAAW,EACP,iLAAiL;IACrL,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC;CACT,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const EnvironmentContributionSchema: z.ZodObject<{
|
|
3
|
+
fragment: z.ZodString;
|
|
4
|
+
}, z.core.$strip>;
|
|
5
|
+
export type EnvironmentContribution = z.infer<typeof EnvironmentContributionSchema>;
|
|
6
|
+
export declare const environmentPoint: {
|
|
7
|
+
readonly name: "environment";
|
|
8
|
+
readonly description: "A Dockerfile fragment baked into the sandbox image so your tools are actually installed at runtime — a whisper binary, a psql client. The owner approves the composed overlay and rebuilds out of band, so this does not take effect immediately.";
|
|
9
|
+
readonly schema: z.ZodObject<{
|
|
10
|
+
fragment: z.ZodString;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/points/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,6BAA6B;;iBAQxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,gBAAgB;mBACnB,aAAa;0BAEf,mPAAmP;;;;CAErN,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const EnvironmentContributionSchema = z.object({
|
|
3
|
+
fragment: z
|
|
4
|
+
.string()
|
|
5
|
+
.min(1)
|
|
6
|
+
.refine((value) => !value.split("/").includes(".."), { message: "fragment must stay inside the checkout" })
|
|
7
|
+
.describe("Checkout-relative path to a file holding ONLY RUN and ENV instructions. FROM and privileged directives are rejected — those stay daemon-owned."),
|
|
8
|
+
});
|
|
9
|
+
export const environmentPoint = {
|
|
10
|
+
name: "environment",
|
|
11
|
+
description: "A Dockerfile fragment baked into the sandbox image so your tools are actually installed at runtime — a whisper binary, a psql client. The owner approves the composed overlay and rebuilds out of band, so this does not take effect immediately.",
|
|
12
|
+
schema: EnvironmentContributionSchema,
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/points/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,CAAC;SACN,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,wCAAwC,EAAE,CAAC;SAC1G,QAAQ,CACL,gJAAgJ,CACnJ;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,IAAI,EAAE,aAAa;IACnB,WAAW,EACP,mPAAmP;IACvP,MAAM,EAAE,6BAA6B;CACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const FileContributionSchema: z.ZodObject<{
|
|
3
|
+
path: z.ZodString;
|
|
4
|
+
invalidates: z.ZodArray<z.ZodString>;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export type FileContribution = z.infer<typeof FileContributionSchema>;
|
|
7
|
+
export declare const filesPoint: {
|
|
8
|
+
readonly name: "files";
|
|
9
|
+
readonly description: "Which workspace files back your views, so the daemon's file watcher can tell the browser they went stale instead of you polling for it. The agent edits the workspace out of band from every HTTP route, and this push is the only thing that can notice.";
|
|
10
|
+
readonly schema: z.ZodArray<z.ZodObject<{
|
|
11
|
+
path: z.ZodString;
|
|
12
|
+
invalidates: z.ZodArray<z.ZodString>;
|
|
13
|
+
}, z.core.$strip>>;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/points/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,sBAAsB;;;iBA4BjC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,UAAU;mBACb,OAAO;0BAET,2PAA2P;;;;;CAE7N,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const FileContributionSchema = z.object({
|
|
3
|
+
path: z
|
|
4
|
+
.string()
|
|
5
|
+
.min(1)
|
|
6
|
+
.refine((value) => !value.startsWith("/") && !value.split("/").includes(".."), {
|
|
7
|
+
message: "path must be workspace-root-relative and stay inside the workspace",
|
|
8
|
+
})
|
|
9
|
+
.describe("Workspace-root-relative, forward-slash, matched by prefix — so one entry covers an exact file (`.intentic/automations.json`), a directory (`.intentic/drafts/`, with the trailing slash so it cannot match a sibling file) or a name family (`.intentic/environment.`). Not a glob."),
|
|
10
|
+
invalidates: z
|
|
11
|
+
.array(z.string().min(1))
|
|
12
|
+
.min(1)
|
|
13
|
+
.describe("The query keys this path makes stale — the first element of your own api.sandbox.key(...) keys. Keep both this and the path as narrow as the view actually needs: a broad prefix costs every connected browser a refetch on every matching write."),
|
|
14
|
+
});
|
|
15
|
+
export const filesPoint = {
|
|
16
|
+
name: "files",
|
|
17
|
+
description: "Which workspace files back your views, so the daemon's file watcher can tell the browser they went stale instead of you polling for it. The agent edits the workspace out of band from every HTTP route, and this push is the only thing that can notice.",
|
|
18
|
+
schema: z.array(FileContributionSchema),
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/points/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAK3C,IAAI,EAAE,CAAC;SACF,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC3E,OAAO,EAAE,oEAAoE;KAChF,CAAC;SACD,QAAQ,CACL,qRAAqR,CACxR;IASL,WAAW,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CACL,mPAAmP,CACtP;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,IAAI,EAAE,OAAO;IACb,WAAW,EACP,2PAA2P;IAC/P,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC;CACL,CAAC"}
|