@intentic/extension-manifest 1.224.0 → 1.225.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -16
- package/dist/bundle.js +2 -2
- package/dist/bundle.js.map +1 -1
- package/dist/manifest.js +5 -5
- package/dist/manifest.js.map +1 -1
- package/dist/mark.js +3 -3
- package/dist/mark.js.map +1 -1
- package/dist/permissions.js +1 -1
- package/dist/permissions.js.map +1 -1
- package/dist/points/automation-templates.d.ts +1 -1
- package/dist/points/automation-templates.d.ts.map +1 -1
- package/dist/points/automation-templates.js +6 -6
- package/dist/points/automation-templates.js.map +1 -1
- package/dist/points/bin.d.ts +1 -1
- package/dist/points/bin.d.ts.map +1 -1
- package/dist/points/bin.js +1 -1
- package/dist/points/bin.js.map +1 -1
- package/dist/points/capabilities.d.ts +1 -1
- package/dist/points/capabilities.d.ts.map +1 -1
- package/dist/points/capabilities.js +13 -13
- package/dist/points/capabilities.js.map +1 -1
- package/dist/points/commands.js +1 -1
- package/dist/points/commands.js.map +1 -1
- package/dist/points/environment.d.ts +1 -1
- package/dist/points/environment.d.ts.map +1 -1
- package/dist/points/environment.js +2 -2
- package/dist/points/environment.js.map +1 -1
- package/dist/points/files.js +2 -2
- package/dist/points/files.js.map +1 -1
- package/dist/points/index.d.ts +7 -7
- package/dist/points/listener.d.ts +1 -1
- package/dist/points/listener.d.ts.map +1 -1
- package/dist/points/listener.js +3 -3
- package/dist/points/listener.js.map +1 -1
- package/dist/points/processes.d.ts +1 -1
- package/dist/points/processes.d.ts.map +1 -1
- package/dist/points/processes.js +1 -1
- package/dist/points/processes.js.map +1 -1
- package/dist/points/settings.js +1 -1
- package/dist/points/settings.js.map +1 -1
- package/dist/points/viewers.d.ts +1 -1
- package/dist/points/viewers.d.ts.map +1 -1
- package/dist/points/viewers.js +3 -3
- package/dist/points/viewers.js.map +1 -1
- package/intentic-extension.schema.json +73 -73
- package/package.json +3 -3
- package/src/bundle.ts +2 -2
- package/src/manifest.ts +5 -5
- package/src/mark.ts +3 -3
- package/src/permissions.ts +1 -1
- package/src/points/automation-templates.ts +6 -6
- package/src/points/bin.ts +1 -1
- package/src/points/capabilities.ts +13 -13
- package/src/points/commands.ts +1 -1
- package/src/points/environment.ts +2 -2
- package/src/points/files.ts +2 -2
- package/src/points/listener.ts +3 -3
- package/src/points/processes.ts +1 -1
- package/src/points/settings.ts +1 -1
- package/src/points/viewers.ts +3 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @intentic/extension-manifest
|
|
2
2
|
|
|
3
|
-
What an extension **declares
|
|
3
|
+
What an extension **declares**: as opposed to what it programs against.
|
|
4
4
|
|
|
5
5
|
This package holds the `intentic-extension.json` schema and the rule that matches a daemon call against the
|
|
6
6
|
manifest's `permissions.sandbox` allowlist. Nothing else: no host API, no Vue, no runtime behaviour. It imports
|
|
@@ -9,9 +9,9 @@ zod and nothing more.
|
|
|
9
9
|
## Why it is its own package
|
|
10
10
|
|
|
11
11
|
It exists to break a cycle. The daemon's wire contract (`@intentic/sandbox-contract`) has to validate manifests,
|
|
12
|
-
because the daemon serves extension listings and gates installs
|
|
12
|
+
because the daemon serves extension listings and gates installs: so it needs the schema. The host API
|
|
13
13
|
(`@intentic/extension-api`) has to name the daemon's typed client, because that is what an extension calls the
|
|
14
|
-
sandbox through
|
|
14
|
+
sandbox through: so it needs the contract. With the schema living in `extension-api`, those two requirements
|
|
15
15
|
formed a loop, and the loop is why `api.sandbox` could only ever offer `request(path)` and `json<T>(path)`: a
|
|
16
16
|
string-shaped door to a fully typed surface, with every extension re-writing the URL, the method and the
|
|
17
17
|
response shape by hand.
|
|
@@ -27,13 +27,13 @@ contract types, which is what lets `api.sandbox.rpc` be typed.
|
|
|
27
27
|
|
|
28
28
|
## One point, one file
|
|
29
29
|
|
|
30
|
-
What a manifest may declare is not one schema
|
|
30
|
+
What a manifest may declare is not one schema: it is thirteen independent ones, and they used to share a file
|
|
31
31
|
every feature had to edit to add anything, in two places at once. Each now lives alone under
|
|
32
32
|
[src/points/](src/points), as its key, its shape and **the sentence that explains it to the author**, and
|
|
33
33
|
`contributes` is assembled from the set. Adding a contribution point is a file plus a line.
|
|
34
34
|
|
|
35
|
-
Binding the description to the schema is the part that pays. It used to sit in a `//` comment
|
|
36
|
-
maintainers, never by the one person it was written for
|
|
35
|
+
Binding the description to the schema is the part that pays. It used to sit in a `//` comment: read by
|
|
36
|
+
maintainers, never by the one person it was written for: so a manifest was written by copying another
|
|
37
37
|
extension's and guessing. Worse, zod *strips* what it does not declare rather than refusing it, at every level:
|
|
38
38
|
a misspelt `viewers` was not an error, it was a viewer that never appeared, found at install, with the manifest
|
|
39
39
|
parsing perfectly. The descriptions now generate out to `intentic-extension.schema.json`, which an editor reads
|
|
@@ -41,34 +41,34 @@ to give completion, hover documentation and a red squiggle on a key nothing decl
|
|
|
41
41
|
|
|
42
42
|
That schema is **strict where the runtime is lenient**, deliberately. Authoring is where an unknown key is a
|
|
43
43
|
typo worth shouting about; runtime is where one is a manifest written for a newer host, which an older daemon
|
|
44
|
-
must go on installing with the point it does not understand ignored
|
|
44
|
+
must go on installing with the point it does not understand ignored: otherwise every addition to that list
|
|
45
45
|
would be a breaking change.
|
|
46
46
|
|
|
47
47
|
## Key files
|
|
48
48
|
|
|
49
|
-
- [src/points/](src/points)
|
|
49
|
+
- [src/points/](src/points): one contribution point per file, and the index that collects them into
|
|
50
50
|
`CONTRIBUTION_POINTS` and assembles `contributes` from it.
|
|
51
|
-
- [src/contribution-point.ts](src/contribution-point.ts)
|
|
51
|
+
- [src/contribution-point.ts](src/contribution-point.ts), what a point *is*: name, description, schema. The
|
|
52
52
|
reasoning for why the description travels with the schema rather than sitting in a comment.
|
|
53
|
-
- [src/manifest.ts](src/manifest.ts)
|
|
53
|
+
- [src/manifest.ts](src/manifest.ts), the envelope: who the extension is, which host it needs, what code it
|
|
54
54
|
ships, how far it may reach. The manifest is the **approval + gating surface**: the install dialog shows
|
|
55
55
|
exactly the declared contribution points, and the host refuses any runtime registration the approved manifest
|
|
56
56
|
never declared.
|
|
57
|
-
- [src/json-schema.ts](src/json-schema.ts)
|
|
58
|
-
- [src/permissions.ts](src/permissions.ts)
|
|
57
|
+
- [src/json-schema.ts](src/json-schema.ts): the authoring schema, emitted from those points.
|
|
58
|
+
- [src/permissions.ts](src/permissions.ts): `sandboxRouteAllowed`, the `"<METHOD> <path-glob>"` matcher behind
|
|
59
59
|
`permissions.sandbox`. Kept beside the schema because it is the rule for one of the schema's own fields.
|
|
60
60
|
|
|
61
61
|
## Conventions & gotchas
|
|
62
62
|
|
|
63
63
|
- **Declaration only.** If something here needed to know how the host behaves, it would belong in
|
|
64
|
-
`extension-api` instead. The test is whether the daemon
|
|
64
|
+
`extension-api` instead. The test is whether the daemon (which has no host and no browser) still needs it.
|
|
65
65
|
- The contribution-point list is read back by the host's surface guard, which compares it against
|
|
66
|
-
`extension-api`'s recorded surface and its README
|
|
66
|
+
`extension-api`'s recorded surface and its README: so adding a contribution point here without bumping the
|
|
67
67
|
SDK version there fails that test rather than shipping a version number that lies about what it supports.
|
|
68
|
-
- **The generated schema is committed, in two copies
|
|
68
|
+
- **The generated schema is committed, in two copies**: the one shipped in this package and the one the site
|
|
69
69
|
serves at the `$schema` URL. Run `pnpm --filter @intentic/extension-manifest schema` after touching a point
|
|
70
70
|
and commit both; `manifest-schema.test.ts` regenerates and compares, the way `contract.lock.json` is guarded.
|
|
71
71
|
A generated document only guards anything if a diff shows it moving.
|
|
72
72
|
- Points are collected in an explicit list rather than by a module-load side effect. Two committed documents
|
|
73
|
-
are generated from them
|
|
73
|
+
are generated from them (that schema and the wire contract's lock) and a registry that filled itself as
|
|
74
74
|
modules happened to load would make both depend on import order.
|
package/dist/bundle.js
CHANGED
|
@@ -10,12 +10,12 @@ export const bundleProblem = (source) => {
|
|
|
10
10
|
const specifiers = bundleSpecifiers(source);
|
|
11
11
|
const relative = specifiers.filter((specifier) => specifier.startsWith(".") || specifier.startsWith("/"));
|
|
12
12
|
if (relative.length > 0) {
|
|
13
|
-
return `imports a second file (${relative.join(", ")})
|
|
13
|
+
return `imports a second file (${relative.join(", ")}): a bundle is imported from a blob URL, so nothing relative to it can resolve`;
|
|
14
14
|
}
|
|
15
15
|
const published = new Set(HOST_PUBLISHED_SPECIFIERS);
|
|
16
16
|
const unpublished = specifiers.filter((specifier) => !published.has(specifier));
|
|
17
17
|
if (unpublished.length > 0) {
|
|
18
|
-
return `imports ${unpublished.join(", ")}, which the host does not publish
|
|
18
|
+
return `imports ${unpublished.join(", ")}, which the host does not publish, bundle it in, or use one of: ${HOST_PUBLISHED_SPECIFIERS.join(", ")}`;
|
|
19
19
|
}
|
|
20
20
|
return undefined;
|
|
21
21
|
};
|
package/dist/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,qBAAqB,CAAU,CAAC;AAKtI,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAY,EAAE,CAAC;IAC1D,GAAG,IAAI,GAAG,CAAC;QACP,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,kEAAkE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1H,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACtG,CAAC;CACL,CAAC;AAIF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAsB,EAAE;IAChE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1G,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,0BAA0B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../src/bundle.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,qBAAqB,CAAU,CAAC;AAKtI,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAY,EAAE,CAAC;IAC1D,GAAG,IAAI,GAAG,CAAC;QACP,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,kEAAkE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1H,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpG,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KACtG,CAAC;CACL,CAAC;AAIF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAsB,EAAE;IAChE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1G,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,0BAA0B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gFAAgF,CAAC;IACzI,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,yBAAyB,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAChF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,WAAW,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,mEAAmE,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtJ,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC"}
|
package/dist/manifest.js
CHANGED
|
@@ -5,12 +5,12 @@ export const ExtensionManifestSchema = z.object({
|
|
|
5
5
|
$schema: z.string().optional().describe("The authoring schema, for editor completion and validation. Nothing at runtime reads it."),
|
|
6
6
|
publisher: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
|
|
7
7
|
name: z.string().regex(/^[a-z0-9][a-z0-9-]*$/),
|
|
8
|
-
version: z.string().min(1).describe("Your own semver
|
|
8
|
+
version: z.string().min(1).describe("Your own semver, display and identity only. The installed code's identity is the pinned commit sha."),
|
|
9
9
|
category: z
|
|
10
10
|
.string()
|
|
11
11
|
.min(1)
|
|
12
12
|
.optional()
|
|
13
|
-
.describe("Which section of the Extensions tab this sits under
|
|
13
|
+
.describe("Which section of the Extensions tab this sits under: a grouping by what it is FOR, which cannot be derived from what it contributes. A section this app has never heard of lands in 'Other' rather than failing to install."),
|
|
14
14
|
...MARK_FIELDS,
|
|
15
15
|
engines: z
|
|
16
16
|
.object({ intentic: z.string().min(1) })
|
|
@@ -32,14 +32,14 @@ export const ExtensionManifestSchema = z.object({
|
|
|
32
32
|
sandbox: z
|
|
33
33
|
.array(z.string())
|
|
34
34
|
.optional()
|
|
35
|
-
.describe("Daemon routes your UI half may call. Your own backend namespace needs no entry
|
|
35
|
+
.describe("Daemon routes your UI half may call. Your own backend namespace needs no entry: its backend is your own code."),
|
|
36
36
|
daemon: z
|
|
37
37
|
.array(z.string())
|
|
38
38
|
.optional()
|
|
39
|
-
.describe("Daemon routes your SERVER half may call. Separate from `sandbox` because the two halves run as different principals
|
|
39
|
+
.describe("Daemon routes your SERVER half may call. Separate from `sandbox` because the two halves run as different principals: the UI as the owner's session, the backend as a minted per-extension token, so a grant to one must never quietly widen the other."),
|
|
40
40
|
})
|
|
41
41
|
.optional()
|
|
42
|
-
.describe('How far this extension may reach into the daemon, as "<METHOD> <path-glob>" entries where `*` matches one path segment
|
|
42
|
+
.describe('How far this extension may reach into the daemon, as "<METHOD> <path-glob>" entries where `*` matches one path segment: e.g. "GET /panels", "POST /panels/*/start". The install dialog shows these, the host refuses anything undeclared, and the usage ledger records which were actually earned.'),
|
|
43
43
|
contributes: contributesSchema.optional(),
|
|
44
44
|
});
|
|
45
45
|
export const extensionIdOf = (manifest) => `${manifest.publisher}.${manifest.name}`;
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAWtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAK5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0FAA0F,CAAC;IACnI,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;IAE9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAWtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAK5C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0FAA0F,CAAC;IACnI,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;IACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC;IAE9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qGAAqG,CAAC;IAO1I,QAAQ,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACL,6NAA6N,CAChO;IAML,GAAG,WAAW;IAEd,OAAO,EAAE,CAAC;SACL,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;SACvC,QAAQ,CAAC,8FAA8F,CAAC;IAG7G,KAAK,EAAE,CAAC;SACH,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,qCAAqC,EAAE,CAAC;SACvG,QAAQ,EAAE;SACV,QAAQ,CACL,4JAA4J,CAC/J;IAOL,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,sCAAsC,EAAE,CAAC;SACxG,QAAQ,EAAE;SACV,QAAQ,CACL,2QAA2Q,CAC9Q;IAWL,WAAW,EAAE,CAAC;SACT,MAAM,CAAC;QACJ,OAAO,EAAE,CAAC;aACL,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CAAC,+GAA+G,CAAC;QAC9H,MAAM,EAAE,CAAC;aACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACL,wPAAwP,CAC3P;KACR,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CACL,oSAAoS,CACvS;IACL,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE;CAC5C,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAuD,EAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC"}
|
package/dist/mark.js
CHANGED
|
@@ -5,14 +5,14 @@ export const MARK_FIELDS = {
|
|
|
5
5
|
.string()
|
|
6
6
|
.max(ART_MAX_BYTES)
|
|
7
7
|
.optional()
|
|
8
|
-
.describe("This extension's own mark, as a complete SVG document inline
|
|
8
|
+
.describe("This extension's own mark, as a complete SVG document inline: the tier an author controls fully. Give it a viewBox and let it fill its own square edge to edge; it is drawn as the tile, not as a glyph on a plate. Kept as readable SVG text (not base64) so a registry reviewer can see what they are publishing, drawn inert so it cannot script the page, and capped at 4 KB. Anything that does not parse as SVG falls back to `logo`, then `icon`, then initials."),
|
|
9
9
|
logo: z
|
|
10
10
|
.string()
|
|
11
11
|
.optional()
|
|
12
|
-
.describe('A simple-icons slug, fetched from a CDN
|
|
12
|
+
.describe('A simple-icons slug, fetched from a CDN: right for standing in for somebody else\'s product. Add a "/<hex>" suffix to force a colour for a mark that vanishes against the surface it lands on. Unreachable in an offline sandbox, so it falls back to `icon`, then to initials.'),
|
|
13
13
|
icon: z
|
|
14
14
|
.string()
|
|
15
15
|
.optional()
|
|
16
|
-
.describe("A name from the host's own icon set, drawn when no simple-icons slug fits. It ships in the image, follows the theme and costs no request
|
|
16
|
+
.describe("A name from the host's own icon set, drawn when no simple-icons slug fits. It ships in the image, follows the theme and costs no request: what actually carries a first-party extension. An unknown name falls back to initials rather than to a hole."),
|
|
17
17
|
};
|
|
18
18
|
//# sourceMappingURL=mark.js.map
|
package/dist/mark.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark.js","sourceRoot":"","sources":["../src/mark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8BxB,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG;IAevB,GAAG,EAAE,CAAC;SACD,MAAM,EAAE;SACR,GAAG,CAAC,aAAa,CAAC;SAClB,QAAQ,EAAE;SACV,QAAQ,CACL,
|
|
1
|
+
{"version":3,"file":"mark.js","sourceRoot":"","sources":["../src/mark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8BxB,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B,MAAM,CAAC,MAAM,WAAW,GAAG;IAevB,GAAG,EAAE,CAAC;SACD,MAAM,EAAE;SACR,GAAG,CAAC,aAAa,CAAC;SAClB,QAAQ,EAAE;SACV,QAAQ,CACL,ycAAyc,CAC5c;IAGL,IAAI,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACL,iRAAiR,CACpR;IAEL,IAAI,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACL,wPAAwP,CAC3P;CACR,CAAC"}
|
package/dist/permissions.js
CHANGED
|
@@ -2,7 +2,7 @@ const escapeRegExp = (literal) => literal.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")
|
|
|
2
2
|
const compile = (entry) => {
|
|
3
3
|
const spaceIndex = entry.indexOf(" ");
|
|
4
4
|
if (spaceIndex < 0) {
|
|
5
|
-
throw new Error(`invalid sandbox permission "${entry}"
|
|
5
|
+
throw new Error(`invalid sandbox permission "${entry}": expected "<METHOD> <path-glob>", e.g. "GET /panels"`);
|
|
6
6
|
}
|
|
7
7
|
const method = entry.slice(0, spaceIndex).trim().toUpperCase();
|
|
8
8
|
const glob = entry.slice(spaceIndex + 1).trim();
|
package/dist/permissions.js.map
CHANGED
|
@@ -1 +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,
|
|
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,wDAAwD,CAAC,CAAC;IAClH,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"}
|
|
@@ -32,7 +32,7 @@ export declare const AutomationTemplateContributionSchema: z.ZodObject<{
|
|
|
32
32
|
export type AutomationTemplateContribution = z.infer<typeof AutomationTemplateContributionSchema>;
|
|
33
33
|
export declare const automationTemplatesPoint: {
|
|
34
34
|
readonly name: "automationTemplates";
|
|
35
|
-
readonly description: "Starting points this pack offers in the automation composer
|
|
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
36
|
readonly schema: z.ZodArray<z.ZodObject<{
|
|
37
37
|
id: z.ZodString;
|
|
38
38
|
title: z.ZodString;
|
|
@@ -1 +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,
|
|
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,kWAAkW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEpU,CAAC"}
|
|
@@ -3,14 +3,14 @@ export const AutomationTemplateContributionSchema = z.object({
|
|
|
3
3
|
id: z
|
|
4
4
|
.string()
|
|
5
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
|
|
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
7
|
title: z.string().min(1),
|
|
8
8
|
logo: z.string().min(1).optional().describe("A simple-icons slug for the card."),
|
|
9
9
|
icon: z.string().min(1).optional().describe("A name from the host's icon set, drawn when no simple-icons slug fits."),
|
|
10
10
|
requires: z
|
|
11
11
|
.array(z.string().min(1))
|
|
12
12
|
.optional()
|
|
13
|
-
.describe("Capability providers that make this template work
|
|
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
14
|
trigger: z
|
|
15
15
|
.object({
|
|
16
16
|
kind: z.enum(["schedule", "event", "listener", "workspace"]),
|
|
@@ -24,7 +24,7 @@ export const AutomationTemplateContributionSchema = z.object({
|
|
|
24
24
|
.string()
|
|
25
25
|
.min(1)
|
|
26
26
|
.optional()
|
|
27
|
-
.describe("A condition that must hold before the turn runs
|
|
27
|
+
.describe("A condition that must hold before the turn runs: what makes a template safe to leave switched on."),
|
|
28
28
|
holdForSeconds: z.number().int().positive().optional().describe("Wait this long and coalesce repeats, rather than firing on every event."),
|
|
29
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
30
|
note: z.string().min(1).optional(),
|
|
@@ -33,15 +33,15 @@ export const AutomationTemplateContributionSchema = z.object({
|
|
|
33
33
|
offer: z
|
|
34
34
|
.enum(["create", "configure"])
|
|
35
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
|
|
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
37
|
chore: z
|
|
38
38
|
.boolean()
|
|
39
39
|
.optional()
|
|
40
|
-
.describe("Whether what this makes watches THIS codebase rather than the outside world. Declared rather than read off the trigger
|
|
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
41
|
});
|
|
42
42
|
export const automationTemplatesPoint = {
|
|
43
43
|
name: "automationTemplates",
|
|
44
|
-
description: "Starting points this pack offers in the automation composer
|
|
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
45
|
schema: z.array(AutomationTemplateContributionSchema),
|
|
46
46
|
};
|
|
47
47
|
//# sourceMappingURL=automation-templates.js.map
|
|
@@ -1 +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
|
|
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,8HAA8H,CAAC;IAC7I,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,2KAA2K,CAC9K;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,mGAAmG,CAAC;IAClH,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,+YAA+Y,CAClZ;IAGL,KAAK,EAAE,CAAC;SACH,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACL,kMAAkM,CACrM;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EACP,kWAAkW;IACtW,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,oCAAoC,CAAC;CACnB,CAAC"}
|
package/dist/points/bin.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const binPoint: {
|
|
3
3
|
readonly name: "bin";
|
|
4
|
-
readonly description: "A checkout-relative directory of executables the daemon puts on the agent's PATH every turn
|
|
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
5
|
readonly schema: z.ZodString;
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=bin.d.ts.map
|
package/dist/points/bin.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,qQAAqQ;;CAKvO,CAAC"}
|
package/dist/points/bin.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export const binPoint = {
|
|
3
3
|
name: "bin",
|
|
4
|
-
description: "A checkout-relative directory of executables the daemon puts on the agent's PATH every turn
|
|
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
5
|
schema: z
|
|
6
6
|
.string()
|
|
7
7
|
.min(1)
|
package/dist/points/bin.js.map
CHANGED
|
@@ -1 +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,
|
|
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,qQAAqQ;IACzQ,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"}
|
|
@@ -191,7 +191,7 @@ export type SkillContribution = Extract<CapabilityContribution, {
|
|
|
191
191
|
export declare const contributionDiscriminator: (kind: string) => string | undefined;
|
|
192
192
|
export declare const capabilitiesPoint: {
|
|
193
193
|
readonly name: "capabilities";
|
|
194
|
-
readonly description: 'Capability cards this pack adds to the "+" grid
|
|
194
|
+
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.';
|
|
195
195
|
readonly schema: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
196
196
|
id: z.ZodString;
|
|
197
197
|
catalog: z.ZodObject<{
|
|
@@ -1 +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;AA+D5E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAwFnC,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,
|
|
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;AA+D5E,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAwFnC,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,2UAA2U;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAE7S,CAAC"}
|
|
@@ -15,11 +15,11 @@ export const CapabilityFieldSchema = z.object({
|
|
|
15
15
|
hint: z
|
|
16
16
|
.string()
|
|
17
17
|
.optional()
|
|
18
|
-
.describe("A line under this control, for what the label alone cannot say
|
|
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
19
|
rebuild: z
|
|
20
20
|
.boolean()
|
|
21
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
|
|
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
23
|
default: z.string().optional(),
|
|
24
24
|
options: z
|
|
25
25
|
.array(z.object({ value: z.string(), label: z.string() }))
|
|
@@ -29,15 +29,15 @@ export const CapabilityFieldSchema = z.object({
|
|
|
29
29
|
.string()
|
|
30
30
|
.refine(isWhenExpression, { message: "not a valid `when` condition" })
|
|
31
31
|
.optional()
|
|
32
|
-
.describe("Only show this field while a condition over the answers already given holds
|
|
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
33
|
value: z
|
|
34
34
|
.string()
|
|
35
35
|
.optional()
|
|
36
|
-
.describe('A fixed value baked into the config rather than asked for
|
|
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
37
|
totp: z
|
|
38
38
|
.boolean()
|
|
39
39
|
.optional()
|
|
40
|
-
.describe("This field holds a TOTP seed
|
|
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
41
|
});
|
|
42
42
|
export const fieldApplies = (field, values) => field.when === undefined || evaluateWhen(parseWhen(field.when), values);
|
|
43
43
|
const CatalogSchema = z.object({
|
|
@@ -46,12 +46,12 @@ const CatalogSchema = z.object({
|
|
|
46
46
|
description: z
|
|
47
47
|
.string()
|
|
48
48
|
.min(1)
|
|
49
|
-
.describe("ONE LINE
|
|
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
50
|
category: z.string().min(1),
|
|
51
51
|
hint: z
|
|
52
52
|
.string()
|
|
53
53
|
.optional()
|
|
54
|
-
.describe('The paragraph, shown under the add form and searched from the catalog
|
|
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
55
|
guide: z
|
|
56
56
|
.object({
|
|
57
57
|
url: z.string().optional(),
|
|
@@ -77,7 +77,7 @@ export const CapabilityContributionSchema = z
|
|
|
77
77
|
fields: z.array(CapabilityFieldSchema).min(1),
|
|
78
78
|
env: z
|
|
79
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
|
|
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
81
|
skill: z
|
|
82
82
|
.string()
|
|
83
83
|
.min(1)
|
|
@@ -94,15 +94,15 @@ export const CapabilityContributionSchema = z
|
|
|
94
94
|
loginUrl: z
|
|
95
95
|
.url()
|
|
96
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
|
|
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
98
|
homeUrl: z
|
|
99
99
|
.url()
|
|
100
100
|
.optional()
|
|
101
|
-
.describe("Where that same profile opens once it HAS a session
|
|
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
102
|
skill: z
|
|
103
103
|
.string()
|
|
104
104
|
.min(1)
|
|
105
|
-
.describe("Checkout-relative SKILL.md teaching the agent this site's actions
|
|
105
|
+
.describe("Checkout-relative SKILL.md teaching the agent this site's actions: rendered once per site, all its connected accounts on one roster (`${accounts}`), the core tool note at `${tools}`."),
|
|
106
106
|
}),
|
|
107
107
|
z.object({
|
|
108
108
|
...contributionBase,
|
|
@@ -119,7 +119,7 @@ export const CapabilityContributionSchema = z
|
|
|
119
119
|
if (Object.values(spec.env).some((template) => template.includes(`\${${field.key}}`) || template.includes(`\${${field.key}:uri}`))) {
|
|
120
120
|
ctx.addIssue({
|
|
121
121
|
code: "custom",
|
|
122
|
-
message: `env must not reference the totp field "${field.key}"
|
|
122
|
+
message: `env must not reference the totp field "${field.key}", the daemon mints codes from it instead`,
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
}
|
|
@@ -128,7 +128,7 @@ const DISCRIMINATOR = { cli: "provider", browser: "platform", host: "platform",
|
|
|
128
128
|
export const contributionDiscriminator = (kind) => DISCRIMINATOR[kind];
|
|
129
129
|
export const capabilitiesPoint = {
|
|
130
130
|
name: "capabilities",
|
|
131
|
-
description: 'Capability cards this pack adds to the "+" grid
|
|
131
|
+
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.',
|
|
132
132
|
schema: z.array(CapabilityContributionSchema),
|
|
133
133
|
};
|
|
134
134
|
//# sourceMappingURL=capabilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/points/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAKzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC3E,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAOjC,OAAO,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACL,2SAA2S,CAC9S;IAIL,IAAI,EAAE,CAAC;SACF,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACL
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/points/capabilities.ts"],"names":[],"mappings":"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"}
|
package/dist/points/commands.js
CHANGED
|
@@ -13,7 +13,7 @@ export const CommandContributionSchema = z.object({
|
|
|
13
13
|
.string()
|
|
14
14
|
.refine(isWhenExpression, { message: "not a valid `when` condition" })
|
|
15
15
|
.optional()
|
|
16
|
-
.describe("When the shortcut applies, as a condition over the shell's context keys
|
|
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
17
|
});
|
|
18
18
|
export const commandsPoint = {
|
|
19
19
|
name: "commands",
|
|
@@ -1 +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,
|
|
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,6TAA6T,CAChU;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"}
|
|
@@ -5,7 +5,7 @@ export declare const EnvironmentContributionSchema: z.ZodObject<{
|
|
|
5
5
|
export type EnvironmentContribution = z.infer<typeof EnvironmentContributionSchema>;
|
|
6
6
|
export declare const environmentPoint: {
|
|
7
7
|
readonly name: "environment";
|
|
8
|
-
readonly description: "A Dockerfile fragment baked into the sandbox image so your tools are actually installed at runtime
|
|
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
9
|
readonly schema: z.ZodObject<{
|
|
10
10
|
fragment: z.ZodString;
|
|
11
11
|
}, z.core.$strip>;
|
|
@@ -1 +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,
|
|
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,kPAAkP;;;;CAEpN,CAAC"}
|
|
@@ -4,11 +4,11 @@ export const EnvironmentContributionSchema = z.object({
|
|
|
4
4
|
.string()
|
|
5
5
|
.min(1)
|
|
6
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
|
|
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
8
|
});
|
|
9
9
|
export const environmentPoint = {
|
|
10
10
|
name: "environment",
|
|
11
|
-
description: "A Dockerfile fragment baked into the sandbox image so your tools are actually installed at runtime
|
|
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
12
|
schema: EnvironmentContributionSchema,
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=environment.js.map
|
|
@@ -1 +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,
|
|
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,+IAA+I,CAClJ;CACR,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC5B,IAAI,EAAE,aAAa;IACnB,WAAW,EACP,kPAAkP;IACtP,MAAM,EAAE,6BAA6B;CACH,CAAC"}
|
package/dist/points/files.js
CHANGED
|
@@ -6,11 +6,11 @@ export const FileContributionSchema = z.object({
|
|
|
6
6
|
.refine((value) => !value.startsWith("/") && !value.split("/").includes(".."), {
|
|
7
7
|
message: "path must be workspace-root-relative and stay inside the workspace",
|
|
8
8
|
})
|
|
9
|
-
.describe("Workspace-root-relative, forward-slash, matched by prefix
|
|
9
|
+
.describe("Workspace-root-relative, forward-slash, matched by prefix, so one entry covers an exact file (`.intentic/config/automations.json`), a directory (`.intentic/config/drafts/`, with the trailing slash so it cannot match a sibling file) or a name family (`.intentic/environment.`). Not a glob."),
|
|
10
10
|
invalidates: z
|
|
11
11
|
.array(z.string().min(1))
|
|
12
12
|
.min(1)
|
|
13
|
-
.describe("The query keys this path makes stale
|
|
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
14
|
});
|
|
15
15
|
export const filesPoint = {
|
|
16
16
|
name: "files",
|
package/dist/points/files.js.map
CHANGED
|
@@ -1 +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,
|
|
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,kSAAkS,CACrS;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,kPAAkP,CACrP;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"}
|