@nacre.work/core 0.28.1 → 0.29.1
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/dist/audit-actions.d.ts.map +1 -1
- package/dist/audit-actions.js +3 -0
- package/dist/audit-actions.js.map +1 -1
- package/dist/default-skill.d.ts +26 -0
- package/dist/default-skill.d.ts.map +1 -0
- package/dist/default-skill.js +56 -0
- package/dist/default-skill.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/migrations/0036_skills.sql +110 -0
- package/dist/skill.d.ts +84 -0
- package/dist/skill.d.ts.map +1 -0
- package/dist/skill.js +352 -0
- package/dist/skill.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -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,
|
|
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"}
|
package/dist/audit-actions.js
CHANGED
|
@@ -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,26 @@
|
|
|
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
|
+
* It is the organization's half — what to keep and how a document is written
|
|
11
|
+
* — and deliberately carries none of the server's mechanics: those are the MCP
|
|
12
|
+
* transport's built-in guide (`packages/mcp/src/instructions.ts`), because an
|
|
13
|
+
* organization's own skill replaces this one entirely and would otherwise take
|
|
14
|
+
* them with it.
|
|
15
|
+
*
|
|
16
|
+
* A TypeScript module rather than a Markdown file beside it, because the build
|
|
17
|
+
* emits `dist/` and nothing else, and a file the package needs at runtime that
|
|
18
|
+
* the build does not copy is how `migrate()` once threw ENOENT from the
|
|
19
|
+
* published package.
|
|
20
|
+
*
|
|
21
|
+
* It must pass `checkSkill` — a case in `skill.test.ts` holds it — so the
|
|
22
|
+
* default is never a skill the format would refuse from anybody else.
|
|
23
|
+
*/
|
|
24
|
+
import type { SkillFiles } from './skill.js';
|
|
25
|
+
export declare const DEFAULT_SKILL: SkillFiles;
|
|
26
|
+
//# 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;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAyD5C,eAAO,MAAM,aAAa,EAAE,UAAkC,CAAA"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const SKILL = `---
|
|
2
|
+
name: nacre-index
|
|
3
|
+
description: What belongs in this organization's Nacre index and how a document is written there — what to look up before answering, what never goes in, how to name, tag and update a document. Use whenever you store to or search Nacre.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Keeping this index worth searching
|
|
7
|
+
|
|
8
|
+
Treat the index as shared, long-lived memory: search it before you guess, and
|
|
9
|
+
store what someone will need again.
|
|
10
|
+
|
|
11
|
+
## Before you answer
|
|
12
|
+
|
|
13
|
+
- Search before answering from memory. Ask in two ways: once in plain words,
|
|
14
|
+
once with the exact terms a document would contain — an error code, a
|
|
15
|
+
contract number, a variable name, a surname.
|
|
16
|
+
- Say when an answer came from the index, and name the document's title.
|
|
17
|
+
|
|
18
|
+
## What belongs here
|
|
19
|
+
|
|
20
|
+
Knowledge someone will need again and could not quickly rebuild: a decision and
|
|
21
|
+
why it was made, a procedure that worked, a non-obvious fix, a reference fact
|
|
22
|
+
about a system, a convention.
|
|
23
|
+
|
|
24
|
+
## What never goes in, unless a layer's skill explicitly says otherwise
|
|
25
|
+
|
|
26
|
+
- Secrets of any kind: passwords, API keys, tokens, private keys, connection
|
|
27
|
+
strings with credentials. Keep the *name* of a variable, never its value;
|
|
28
|
+
write \`<TOKEN>\` where a value would go.
|
|
29
|
+
- Personal data: names of private individuals, email addresses, phone numbers,
|
|
30
|
+
identity or payment numbers, customers' records.
|
|
31
|
+
- One-off chatter, drafts, and guesses you have not checked.
|
|
32
|
+
|
|
33
|
+
If you are unsure whether something is a secret, treat it as one.
|
|
34
|
+
|
|
35
|
+
## How a document is written
|
|
36
|
+
|
|
37
|
+
1. **Pick the layer by its purpose**, and read that layer's skill first. If no
|
|
38
|
+
layer fits, say so instead of putting it somewhere it does not belong.
|
|
39
|
+
2. **Search first.** If a document on the subject exists, update it rather
|
|
40
|
+
than adding a second one.
|
|
41
|
+
3. **One subject per document**, written so a reader with no context
|
|
42
|
+
understands it: a clear title, a one-line summary at the top, then the
|
|
43
|
+
detail.
|
|
44
|
+
4. **A readable \`external_id\` derived from the subject**, not from the date —
|
|
45
|
+
such as \`deploy/rotate-signing-key\` — so the next update finds it.
|
|
46
|
+
5. **Tags in \`metadata\`**: lower-case keys, simple values. Use the keys a
|
|
47
|
+
layer's skill names; otherwise \`type\` and \`updated\` (YYYY-MM-DD).
|
|
48
|
+
6. **Check that it arrived** before saying it is stored.
|
|
49
|
+
|
|
50
|
+
## Removing
|
|
51
|
+
|
|
52
|
+
Remove what is wrong or obsolete. Do not remove something just because you did
|
|
53
|
+
not write it — correct it instead, under the same \`external_id\`.
|
|
54
|
+
`;
|
|
55
|
+
export const DEFAULT_SKILL = { 'SKILL.md': SKILL };
|
|
56
|
+
//# sourceMappingURL=default-skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-skill.js","sourceRoot":"","sources":["../default-skill.ts"],"names":[],"mappings":"AAyBA,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDb,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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
package/dist/skill.d.ts
ADDED
|
@@ -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"}
|