@nacre.work/core 0.28.0 → 0.29.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.
@@ -1 +1 @@
1
- {"version":3,"file":"audit-actions.d.ts","sourceRoot":"","sources":["../audit-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,eAAe,EA0CnD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAEpD,CAAA"}
1
+ {"version":3,"file":"audit-actions.d.ts","sourceRoot":"","sources":["../audit-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,eAAe,EA6CnD,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAEpD,CAAA"}
@@ -36,6 +36,9 @@ export const AUDIT_ACTIONS = [
36
36
  { name: 'search', documentAccess: true, summary: 'A search was run' },
37
37
  { name: 'second_factor.enrol', documentAccess: false, summary: 'A second factor was enrolled' },
38
38
  { name: 'second_factor.remove', documentAccess: false, summary: 'A second factor was removed' },
39
+ { name: 'skill.cleared', documentAccess: false, summary: 'A skill was cleared, so the level above applies' },
40
+ { name: 'skill.restored', documentAccess: false, summary: 'A skill was rolled back to an earlier version' },
41
+ { name: 'skill.updated', documentAccess: false, summary: 'A skill was written' },
39
42
  { name: 'tenant_override_attempt', documentAccess: false, summary: 'A request tried to name another organization' },
40
43
  { name: 'update_layer', documentAccess: false, summary: 'A layer was renamed' },
41
44
  { name: 'update_metadata', documentAccess: false, summary: "A document's tags were changed" },
@@ -1 +1 @@
1
- {"version":3,"file":"audit-actions.js","sourceRoot":"","sources":["../audit-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-actions.js","sourceRoot":"","sources":["../audit-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The skill an agent gets on an installation nobody has configured.
3
+ *
4
+ * docs/skills.md calls this the most important artifact in the feature, and
5
+ * that is not modesty about the rest: most agents connected to most
6
+ * installations will read this and nothing else. It is judged by running it —
7
+ * a fresh agent on the demo stand with no other guidance, storing and finding
8
+ * things correctly — and not by reading it back.
9
+ *
10
+ * A TypeScript module rather than a Markdown file beside it, because the build
11
+ * emits `dist/` and nothing else, and a file the package needs at runtime that
12
+ * the build does not copy is how `migrate()` once threw ENOENT from the
13
+ * published package.
14
+ *
15
+ * It must pass `checkSkill` — a case in `skill.test.ts` holds it — so the
16
+ * default is never a skill the format would refuse from anybody else.
17
+ */
18
+ import type { SkillFiles } from './skill.js';
19
+ export declare const DEFAULT_SKILL: SkillFiles;
20
+ //# sourceMappingURL=default-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-skill.d.ts","sourceRoot":"","sources":["../default-skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAoG5C,eAAO,MAAM,aAAa,EAAE,UAAkC,CAAA"}
@@ -0,0 +1,99 @@
1
+ const SKILL = `---
2
+ name: nacre-index
3
+ description: How to search and store knowledge in this Nacre index — what to look up before answering, what belongs in it, how to name and tag a document, and how to tell that it arrived. Use whenever you read from or write to Nacre.
4
+ ---
5
+
6
+ # Working with this Nacre index
7
+
8
+ Nacre is this organization's knowledge index. Everything you search here is
9
+ filtered to what the person or account you act for may read, and everything you
10
+ store is kept for the next agent and the next person. Treat it as shared,
11
+ long-lived memory: search it before you guess, and store what is worth finding
12
+ again.
13
+
14
+ ## Before you start
15
+
16
+ - Call \`list_layers\` to see the layers you can reach. A layer is a collection
17
+ with one purpose — a handbook, contracts, engineering notes.
18
+ - Call \`list_skills\`. A layer may carry its own skill saying what belongs in
19
+ it and how documents there are named. **Read a layer's skill with
20
+ \`get_skill\` before you write to that layer.** Where it disagrees with this
21
+ page, the layer's skill wins.
22
+
23
+ ## Searching
24
+
25
+ - Ask in two ways: once in plain words ("how do we rotate the signing key"),
26
+ once with the exact terms a document would contain — an error code, a
27
+ contract number, a variable name, a surname. The search matches meaning and
28
+ literal terms both.
29
+ - Narrow with \`layers\` when you know where something lives, and with
30
+ \`filters\` on metadata when a layer's skill names its keys.
31
+ - **An empty result is an answer.** It means nothing you may see matched.
32
+ Do not rephrase the same question hoping for a different result, and do not
33
+ report the index as broken.
34
+ - **"Not found" means not found or not permitted, deliberately the same.**
35
+ Do not try to tell them apart.
36
+ - Say when an answer came from the index, and name the document's title.
37
+
38
+ ## Storing
39
+
40
+ **What belongs here:** knowledge someone will need again and could not
41
+ quickly rebuild — a decision and why it was made, a procedure that worked, a
42
+ non-obvious fix, a reference fact about a system, a convention.
43
+
44
+ **What never goes in, unless a layer's skill explicitly says otherwise:**
45
+
46
+ - secrets of any kind: passwords, API keys, tokens, private keys, connection
47
+ strings with credentials. Keep the *name* of a variable, never its value;
48
+ write \`<TOKEN>\` where a value would go;
49
+ - personal data: names of private individuals, email addresses, phone numbers,
50
+ identity or payment numbers, customers' records;
51
+ - one-off chatter, drafts, and guesses you have not checked.
52
+
53
+ If you are unsure whether something is a secret, treat it as one.
54
+
55
+ **How to store it:**
56
+
57
+ 1. **Pick the layer by its purpose**, from \`list_layers\` and the layer's skill.
58
+ If no layer fits, say so instead of putting it somewhere it does not belong.
59
+ 2. **Search first.** If a document on the subject exists, update it rather
60
+ than adding a second one.
61
+ 3. **One subject per document**, written so a reader with no context
62
+ understands it: a clear title, a one-line summary at the top, then the
63
+ detail.
64
+ 4. **Give it a stable \`external_id\`** — a readable key derived from the
65
+ subject, not from the date, such as \`deploy/rotate-signing-key\`. Sending
66
+ the same \`external_id\` again **replaces** the document, which is how you
67
+ update it. A new id makes a duplicate.
68
+ 5. **Tag it** with \`metadata\`: lower-case keys, simple values. Use the keys a
69
+ layer's skill names; otherwise \`type\` and \`updated\` (YYYY-MM-DD) are a good
70
+ default.
71
+ 6. **Choose the right way in:**
72
+ - text you wrote → \`ingest_document\` with \`content\`;
73
+ - a public page → \`ingest_document\` with \`url\`;
74
+ - a file you hold (PDF, Word, a spreadsheet) → \`request_upload\`, then send
75
+ the file to the URL it returns, so the file is not retyped through your
76
+ context;
77
+ - a file the person wants to pick → \`upload_file\`, where it is offered.
78
+ 7. **Check that it arrived.** An ingest answers \`queued\`, which is not success.
79
+ Call \`ingest_status\` with the \`job_id\` until it says \`indexed\`. \`indexed\`
80
+ with zero chunks means no text was found; \`failed\` comes with a reason that
81
+ says whether sending again would help.
82
+
83
+ ## Removing
84
+
85
+ \`delete_document\` takes a document out of every search at once. Remove what is
86
+ wrong or obsolete; do not remove something just because you did not write it —
87
+ correct it instead, with the same \`external_id\`.
88
+
89
+ ## Permissions you will meet
90
+
91
+ - Write does not imply read. You may be able to store into a layer you cannot
92
+ search; a write that succeeds followed by a search that finds nothing is
93
+ correct, not a failure.
94
+ - The person who connected you may have limited this connection to some
95
+ layers, or to reading only. A refusal to write is that limit, not an error to
96
+ work around.
97
+ `;
98
+ export const DEFAULT_SKILL = { 'SKILL.md': SKILL };
99
+ //# sourceMappingURL=default-skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-skill.js","sourceRoot":"","sources":["../default-skill.ts"],"names":[],"mappings":"AAmBA,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgGb,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAe,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA"}
package/dist/index.d.ts CHANGED
@@ -43,6 +43,8 @@ export { CborError, coseToPublicKey, decodeCbor, parseAuthenticatorData, readCli
43
43
  export type { Algorithm, Assertion, AssertionInput, AttestedCredential, AuthenticatorData, AuthenticatorFlags, ClientData, PublicKey, Registration, RegistrationInput, } from './webauthn.js';
44
44
  export type { SparseVector } from './text/bm25.js';
45
45
  export { classifyIngestFailure, isRetryable, withoutHosts } from './ingest-failure.js';
46
+ export { checkSkill, readFrontmatter, readSkillZip, skillBody, skillPathError, writeSkillZip, SKILL_FILE, SKILL_LIMITS, type Skill, type SkillCheck, type SkillFiles, } from './skill.js';
47
+ export { DEFAULT_SKILL } from './default-skill.js';
46
48
  export { BINARY_FORMATS, SIGNATURES, SIGNATURE_NAMES, binaryFormat, binaryFormatForExtension, isBinaryFormat, signatureFamily, } from './formats.js';
47
49
  export type { BinaryFormat, SignatureFamily } from './formats.js';
48
50
  export type { IngestFailure, IngestFailureReason } from './ingest-failure.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -25,6 +25,8 @@ export { encodeDocument, encodeQuery, isEmpty, SPARSE_VECTOR_NAME, tokenize } fr
25
25
  export { base32Decode, base32Encode, generateRecoveryCode, generateTotpSecret, hashRecoveryCode, normalizeRecoveryCode, openTotpSecret, otpauthUrl, RECOVERY_CODE_COUNT, sealTotpSecret, TOTP_DIGITS, TOTP_PERIOD_SECONDS, TOTP_SKEW_STEPS, totpCode, totpStep, verifyTotp, } from './totp.js';
26
26
  export { CborError, coseToPublicKey, decodeCbor, parseAuthenticatorData, readClientData, SUPPORTED_ALGORITHMS, verifyAssertion, verifyRegistration, } from './webauthn.js';
27
27
  export { classifyIngestFailure, isRetryable, withoutHosts } from './ingest-failure.js';
28
+ export { checkSkill, readFrontmatter, readSkillZip, skillBody, skillPathError, writeSkillZip, SKILL_FILE, SKILL_LIMITS, } from './skill.js';
29
+ export { DEFAULT_SKILL } from './default-skill.js';
28
30
  export { BINARY_FORMATS, SIGNATURES, SIGNATURE_NAMES, binaryFormat, binaryFormatForExtension, isBinaryFormat, signatureFamily, } from './formats.js';
29
31
  export { DEFAULT_EMBED_MAX_TOKENS, estimateTokens, refusedForLength, TOKEN_RESERVE, tokenBudget, } from './text/tokens.js';
30
32
  export { Counter, Gauge, Histogram, Registry, createMetrics } from './metrics.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ -- 0036 — skills: what an agent is told about this installation, this
2
+ -- organization and a layer. docs/skills.md is the specification.
3
+ --
4
+ -- ─── versions, not rows ───
5
+ --
6
+ -- A skill is never updated in place. Every write inserts the next version, and
7
+ -- the current skill is the newest one. Three things fall out of that and are
8
+ -- the reason for the shape:
9
+ --
10
+ -- - **Rollback is a write.** Going back copies an old version's files into a
11
+ -- new one, so history is linear and nothing in it is ever rewritten.
12
+ -- - **A stale writer is refused by the database.** A write names the version it
13
+ -- was based on and inserts `based_on + 1`; the unique key on the version
14
+ -- number turns two writers racing from the same base into one success and one
15
+ -- unique violation, which the API answers as `409`. A read-then-compare in the
16
+ -- application would need a lock to mean the same thing.
17
+ -- - **Clearing is a version too.** A version with no files is "not set", and
18
+ -- the level above applies. That keeps "who cleared it, when, through what" in
19
+ -- the same history as everything else.
20
+ --
21
+ -- ─── two tables, because one level is not a tenant's ───
22
+ --
23
+ -- An organization's and a layer's skill are tenant data, with RLS like every
24
+ -- other tenant table. The installation's belongs to no organization: it is read
25
+ -- by every one of them and written by a `platform_admin`. Putting it in the
26
+ -- tenant table as `org_id NULL` would need a policy that admits NULL rows to
27
+ -- every tenant and a write path outside `withOrg` — and that path is exactly
28
+ -- what this repository refuses without naming the mechanism. A table with no
29
+ -- `org_id` holds nothing of any tenant's, needs no policy, and is read inside
30
+ -- `withOrg` like any shared reference data.
31
+
32
+ CREATE TABLE skill_versions (
33
+ org_id uuid NOT NULL REFERENCES organizations (id) ON DELETE CASCADE,
34
+ -- NULL is the organization's own skill; a layer id is that layer's.
35
+ layer_id uuid,
36
+ version int NOT NULL CHECK (version >= 1),
37
+
38
+ -- `{ "SKILL.md": "…", "references/x.md": "…" }`, exactly as written. The
39
+ -- bounds are the API's — 64 files, 256 KiB each, 1 MiB in all — and the
40
+ -- total is held here as well, because the two disagree exactly when
41
+ -- somebody writes to the database by hand.
42
+ files jsonb NOT NULL CHECK (jsonb_typeof(files) = 'object'),
43
+ CONSTRAINT skill_versions_size CHECK (octet_length(files::text) <= 1310720),
44
+
45
+ -- Read out of SKILL.md's frontmatter on write, so a listing does not parse
46
+ -- every skill it names. NULL on a cleared version.
47
+ name text CHECK (name ~ '^[a-z0-9]+(-[a-z0-9]+)*$' AND length(name) <= 64),
48
+ description text CHECK (length(description) BETWEEN 1 AND 1024),
49
+ has_scripts boolean NOT NULL DEFAULT false,
50
+
51
+ -- Who wrote it and through what, which is the whole of "a version written
52
+ -- by an agent says so". `principal` is `{type}:{id}`, the shape the access
53
+ -- log uses; `connection_id` is the delegation when there was one.
54
+ principal text NOT NULL,
55
+ surface text NOT NULL CHECK (surface IN ('rest', 'mcp', 'mcp-admin')),
56
+ connection_id uuid,
57
+ -- The version a restore copied, so history can say "restored from 3".
58
+ restored_from int,
59
+ created_at timestamptz NOT NULL DEFAULT now(),
60
+
61
+ -- A cleared version carries no name; a written one carries both fields.
62
+ CONSTRAINT skill_versions_named CHECK (
63
+ (files = '{}'::jsonb AND name IS NULL AND description IS NULL)
64
+ OR (files <> '{}'::jsonb AND name IS NOT NULL AND description IS NOT NULL)
65
+ ),
66
+ -- Composite, so a row cannot name a layer in another organization while
67
+ -- claiming this one: 0015 added the key for exactly this.
68
+ CONSTRAINT skill_versions_layer_in_org
69
+ FOREIGN KEY (layer_id, org_id) REFERENCES layers (id, org_id) ON DELETE CASCADE
70
+ );
71
+
72
+ -- One version number per skill. NULLS NOT DISTINCT, because the organization's
73
+ -- own skill has a NULL layer and a plain unique index would let two rows claim
74
+ -- version 1 of it — the race this key exists to refuse.
75
+ CREATE UNIQUE INDEX skill_versions_version
76
+ ON skill_versions (org_id, layer_id, version) NULLS NOT DISTINCT;
77
+
78
+ ALTER TABLE skill_versions ENABLE ROW LEVEL SECURITY;
79
+ ALTER TABLE skill_versions FORCE ROW LEVEL SECURITY;
80
+
81
+ CREATE POLICY org_isolation ON skill_versions
82
+ USING (org_id = current_setting('app.current_org')::uuid);
83
+
84
+ -- Insert and read. Never UPDATE or DELETE from the application: a version is a
85
+ -- record of what agents were told, and rewriting one rewrites that record. A
86
+ -- deleted layer's versions go with it through the cascade, run by the
87
+ -- collector.
88
+ GRANT SELECT, INSERT ON skill_versions TO nacre_app;
89
+
90
+ CREATE TABLE installation_skill_versions (
91
+ version int PRIMARY KEY CHECK (version >= 1),
92
+ files jsonb NOT NULL CHECK (jsonb_typeof(files) = 'object'),
93
+ CONSTRAINT installation_skill_versions_size CHECK (octet_length(files::text) <= 1310720),
94
+ name text CHECK (name ~ '^[a-z0-9]+(-[a-z0-9]+)*$' AND length(name) <= 64),
95
+ description text CHECK (length(description) BETWEEN 1 AND 1024),
96
+ has_scripts boolean NOT NULL DEFAULT false,
97
+ principal text NOT NULL,
98
+ -- Never 'mcp' or 'mcp-admin': rights spanning tenants stay in the API and
99
+ -- the console, and the constraint says so where a hand-written insert would
100
+ -- otherwise get round it.
101
+ surface text NOT NULL CHECK (surface = 'rest'),
102
+ restored_from int,
103
+ created_at timestamptz NOT NULL DEFAULT now(),
104
+ CONSTRAINT installation_skill_versions_named CHECK (
105
+ (files = '{}'::jsonb AND name IS NULL AND description IS NULL)
106
+ OR (files <> '{}'::jsonb AND name IS NOT NULL AND description IS NOT NULL)
107
+ )
108
+ );
109
+
110
+ GRANT SELECT, INSERT ON installation_skill_versions TO nacre_app;
@@ -0,0 +1,84 @@
1
+ export declare const SKILL_FILE = "SKILL.md";
2
+ export declare const SKILL_LIMITS: {
3
+ readonly files: 64;
4
+ readonly fileBytes: number;
5
+ readonly totalBytes: number;
6
+ readonly pathLength: 256;
7
+ readonly nameLength: 64;
8
+ readonly descriptionLength: 1024;
9
+ };
10
+ /** `{ "SKILL.md": "…", "references/x.md": "…" }`, exactly as written. */
11
+ export type SkillFiles = Readonly<Record<string, string>>;
12
+ export interface Skill {
13
+ readonly name: string;
14
+ readonly description: string;
15
+ /** Anything under `scripts/` — code the agent may run on its own side. */
16
+ readonly hasScripts: boolean;
17
+ readonly files: SkillFiles;
18
+ }
19
+ /**
20
+ * What `checkSkill` decided.
21
+ *
22
+ * `cleared` is a real outcome rather than an error: no files at all, or a
23
+ * `SKILL.md` whose body is empty, is how a level is cleared so the one above
24
+ * applies again.
25
+ */
26
+ export type SkillCheck = {
27
+ readonly kind: 'skill';
28
+ readonly skill: Skill;
29
+ } | {
30
+ readonly kind: 'cleared';
31
+ } | {
32
+ readonly kind: 'refused';
33
+ readonly reason: string;
34
+ };
35
+ /**
36
+ * A path inside a skill, or the reason it is not one.
37
+ *
38
+ * Relative, forward slashes, no `.` or `..` segment, no empty segment. The
39
+ * paths become keys of a JSON object and entries of a zip somebody else
40
+ * unpacks, so a `..` here is a file written outside the folder on the machine
41
+ * that extracts it.
42
+ */
43
+ export declare function skillPathError(path: string): string | undefined;
44
+ /**
45
+ * The frontmatter at the top of `SKILL.md`, and the body after it.
46
+ *
47
+ * A small subset of YAML, because that is all a skill's frontmatter is:
48
+ * `key: value` lines, quoted or plain, and `|` / `>` blocks for a description
49
+ * that runs over several lines. Keys this does not use are kept in the file as
50
+ * written — nothing here rewrites a skill — and only `name` and `description`
51
+ * are read.
52
+ */
53
+ export declare function readFrontmatter(text: string): {
54
+ readonly fields: Readonly<Record<string, string>>;
55
+ readonly body: string;
56
+ } | {
57
+ readonly error: string;
58
+ };
59
+ /**
60
+ * A folder, checked: a skill, a clearing, or one sentence saying why not.
61
+ *
62
+ * Takes `unknown` because every caller is handing it something a client sent —
63
+ * a JSON body, a tool argument, the entries of a zip — and the shape is part of
64
+ * what is checked.
65
+ */
66
+ export declare function checkSkill(input: unknown): SkillCheck;
67
+ /** The body of `SKILL.md`, without its frontmatter. */
68
+ export declare function skillBody(skill: Skill): string;
69
+ /** A folder as a zip, entries under `folder/` and stored uncompressed. */
70
+ export declare function writeSkillZip(folder: string, files: SkillFiles): Buffer;
71
+ /**
72
+ * The files of a skill zip, or the reason it is not one.
73
+ *
74
+ * A zip made by Finder or by Claude's own export has the skill inside one top
75
+ * folder; that folder is removed, so `my-skill/SKILL.md` and `SKILL.md` read the
76
+ * same. `__MACOSX/` and `.DS_Store` are skipped, because every zip made on a Mac
77
+ * carries them and none of them is part of a skill.
78
+ */
79
+ export declare function readSkillZip(zip: Uint8Array): {
80
+ readonly files: Record<string, string>;
81
+ } | {
82
+ readonly error: string;
83
+ };
84
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../skill.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,UAAU,aAAa,CAAA;AAEpC,eAAO,MAAM,YAAY;;;;;;;CAOf,CAAA;AAEV,yEAAyE;AACzE,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEzD,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAQzD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAY/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAuC3G;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAoDrD;AAED,uDAAuD;AACvD,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAG9C;AAcD,0EAA0E;AAC1E,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAqDvE;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAsFrH"}