londai 0.1.0-alpha.0 → 0.1.0-alpha.2

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.
@@ -3,12 +3,11 @@
3
3
  * tools, skills, hooks, thinkingLevel). Returns an {@link AgentSpec} that
4
4
  * `londai.run()` instantiates per request.
5
5
  *
6
- * Skills are loaded (file content + frontmatter) at define time via
7
- * `defineSkill`, so missing-skill-file errors surface at boot. Hooks map
6
+ * Skills are code-first TypeScript strings defined via `defineSkill`. Hooks map
8
7
  * directly to `AgentOptions` fields at request build time.
9
8
  *
10
9
  * The spec is a pure data object — no `Agent` is instantiated here. That keeps
11
- * `defineAgent` safe to call at module top level (no I/O beyond skill reads).
10
+ * `defineAgent` safe to call at module top level.
12
11
  */
13
12
  import type { AgentTool, ModelThinkingLevel, SimpleStreamOptions } from "@londai/core";
14
13
  import { defineSkill, formatSkillsForSystemPrompt } from "./define-skill.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"define-agent.d.ts","sourceRoot":"","sources":["../src/define-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EACT,MAAM,GACN,CAAC,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,OAAO,cAAc,EAAE,YAAY,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7G,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IACzB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC;CACrG;AAUD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAgB9D;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"define-agent.d.ts","sourceRoot":"","sources":["../src/define-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EACT,MAAM,GACN,CAAC,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,OAAO,cAAc,EAAE,YAAY,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7G,KAAK,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IACzB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,CAAC,SAAS,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC;CACrG;AAMD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAgB9D;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -3,19 +3,14 @@
3
3
  * tools, skills, hooks, thinkingLevel). Returns an {@link AgentSpec} that
4
4
  * `londai.run()` instantiates per request.
5
5
  *
6
- * Skills are loaded (file content + frontmatter) at define time via
7
- * `defineSkill`, so missing-skill-file errors surface at boot. Hooks map
6
+ * Skills are code-first TypeScript strings defined via `defineSkill`. Hooks map
8
7
  * directly to `AgentOptions` fields at request build time.
9
8
  *
10
9
  * The spec is a pure data object — no `Agent` is instantiated here. That keeps
11
- * `defineAgent` safe to call at module top level (no I/O beyond skill reads).
10
+ * `defineAgent` safe to call at module top level.
12
11
  */
13
12
  import { defineSkill, formatSkillsForSystemPrompt } from "./define-skill.js";
14
13
  function normalizeSkill(skill) {
15
- if ("content" in skill && typeof skill.content === "string" && skill.name && skill.description) {
16
- // Looks like a SkillSpec already (has content + name + description). Accept as-is.
17
- return skill;
18
- }
19
14
  return defineSkill(skill);
20
15
  }
21
16
  export function defineAgent(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"define-agent.js","sourceRoot":"","sources":["../src/define-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAmB7E,SAAS,cAAc,CAAC,KAAoD;IAC3E,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAChG,mFAAmF;QACnF,OAAO,KAAkB,CAAC;IAC3B,CAAC;IACD,OAAO,WAAW,CAAC,KAA0C,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAuB;IAClD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxD,KAAK,2BAA2B,CAAC,CAAC,0DAA0D;IAE5F,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;QACxB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,aAAa,EAAE,KAAK,CAAC,aAAa;KAClC,CAAC;AACH,CAAC;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"define-agent.js","sourceRoot":"","sources":["../src/define-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAmB7E,SAAS,cAAc,CAAC,KAAoD;IAC3E,OAAO,WAAW,CAAC,KAA0C,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAuB;IAClD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACxD,KAAK,2BAA2B,CAAC,CAAC,0DAA0D;IAE5F,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM;QACN,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE;QACxB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,aAAa,EAAE,KAAK,CAAC,aAAa;KAClC,CAAC;AACH,CAAC;AAED,OAAO,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /**
2
- * `defineSkill` — load a skill (frontmatter + markdown) explicit & type-safe.
2
+ * `defineSkill` — define a skill explicit & type-safe.
3
3
  *
4
- * Londai is explicit (DESIGN §12): no folder auto-discovery. Pass `source` (a
5
- * markdown file path relative to cwd) or `content` (inline markdown).
4
+ * Londai is a server framework, so skills are code-first: pass the markdown
5
+ * instructions as a TypeScript string. This keeps dev and production behavior
6
+ * identical across bundlers and deploy targets.
6
7
  */
7
8
  import type { DefineSkillInput, SkillSpec } from "./types.ts";
8
9
  export declare function defineSkill(input: DefineSkillInput): SkillSpec;
9
- export { formatSkillsForSystemPrompt } from "./skills-loader.ts";
10
+ export { formatSkillInvocation, formatSkillsForSystemPrompt } from "./skills-loader.ts";
10
11
  //# sourceMappingURL=define-skill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-skill.d.ts","sourceRoot":"","sources":["../src/define-skill.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9D,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAqC9D;AAED,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"define-skill.d.ts","sourceRoot":"","sources":["../src/define-skill.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE9D,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAoB9D;AAED,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,45 +1,27 @@
1
1
  /**
2
- * `defineSkill` — load a skill (frontmatter + markdown) explicit & type-safe.
2
+ * `defineSkill` — define a skill explicit & type-safe.
3
3
  *
4
- * Londai is explicit (DESIGN §12): no folder auto-discovery. Pass `source` (a
5
- * markdown file path relative to cwd) or `content` (inline markdown).
4
+ * Londai is a server framework, so skills are code-first: pass the markdown
5
+ * instructions as a TypeScript string. This keeps dev and production behavior
6
+ * identical across bundlers and deploy targets.
6
7
  */
7
- import { loadSkillFromFile, validateSkillDescription, validateSkillName } from "./skills-loader.js";
8
+ import { looksLikeSkillSourcePath, validateSkillDescription, validateSkillName, } from "./skills-loader.js";
8
9
  export function defineSkill(input) {
9
- let description = input.description;
10
- let content = input.content ?? "";
11
- let filePath;
12
- let disableModelInvocation = input.disableModelInvocation;
13
- if (input.source) {
14
- const loaded = loadSkillFromFile(input.source);
15
- filePath = loaded.resolvedPath;
16
- if (loaded.content)
17
- content = loaded.content;
18
- if (loaded.frontmatter.description)
19
- description ??= loaded.frontmatter.description;
20
- if (loaded.frontmatter.name && !input.name) {
21
- // frontmatter name is informational; input.name wins
22
- }
23
- if (typeof loaded.frontmatter["disable-model-invocation"] === "boolean") {
24
- disableModelInvocation ??= loaded.frontmatter["disable-model-invocation"];
25
- }
26
- }
27
- if (!description) {
28
- throw new Error(`londai: skill "${input.name}" is missing a description (provide description or frontmatter).`);
10
+ if (looksLikeSkillSourcePath(input.content)) {
11
+ throw new Error(`londai: skill "${input.name}" content looks like a markdown file path. Pass the actual markdown text to content instead.`);
29
12
  }
30
13
  for (const warning of validateSkillName(input.name)) {
31
14
  console.warn(`[londai] skill "${input.name}": ${warning}`);
32
15
  }
33
- for (const warning of validateSkillDescription(description)) {
16
+ for (const warning of validateSkillDescription(input.description)) {
34
17
  console.warn(`[londai] skill "${input.name}": ${warning}`);
35
18
  }
36
19
  return {
37
20
  name: input.name,
38
- description,
39
- content,
40
- filePath,
41
- disableModelInvocation,
21
+ description: input.description,
22
+ content: input.content,
23
+ disableModelInvocation: input.disableModelInvocation,
42
24
  };
43
25
  }
44
- export { formatSkillsForSystemPrompt } from "./skills-loader.js";
26
+ export { formatSkillInvocation, formatSkillsForSystemPrompt } from "./skills-loader.js";
45
27
  //# sourceMappingURL=define-skill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-skill.js","sourceRoot":"","sources":["../src/define-skill.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGpG,MAAM,UAAU,WAAW,CAAC,KAAuB;IAClD,IAAI,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;IACpC,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IAClC,IAAI,QAA4B,CAAC;IACjC,IAAI,sBAAsB,GAAG,KAAK,CAAC,sBAAsB,CAAC;IAE1D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/C,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC;QAC/B,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC7C,IAAI,MAAM,CAAC,WAAW,CAAC,WAAW;YAAE,WAAW,KAAK,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC;QACnF,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5C,qDAAqD;QACtD,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,0BAA0B,CAAC,KAAK,SAAS,EAAE,CAAC;YACzE,sBAAsB,KAAK,MAAM,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;QAC3E,CAAC;IACF,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,CAAC,IAAI,kEAAkE,CAAC,CAAC;IACjH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,wBAAwB,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW;QACX,OAAO;QACP,QAAQ;QACR,sBAAsB;KACtB,CAAC;AACH,CAAC;AAED,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"define-skill.js","sourceRoot":"","sources":["../src/define-skill.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACN,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,UAAU,WAAW,CAAC,KAAuB;IAClD,IAAI,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACd,kBAAkB,KAAK,CAAC,IAAI,8FAA8F,CAC1H,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,wBAAwB,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACnE,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO;QACN,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;KACpD,CAAC;AACH,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -20,6 +20,6 @@ export { codeToStatus, errorCodeOf, errorToStatus, FrameworkError } from "./erro
20
20
  export { createConsoleLogger, silentLogger } from "./logger.ts";
21
21
  export { londai } from "./londai.ts";
22
22
  export { getAuthConfig, getModels, requireConfig, requireModels, resetRegistry, } from "./registry.ts";
23
- export { formatSkillsForSystemPrompt as formatSkills, loadSkillFromFile, parseFrontmatter, validateSkillDescription, validateSkillName, } from "./skills-loader.ts";
23
+ export { formatSkillsForSystemPrompt as formatSkills, validateSkillDescription, validateSkillName, } from "./skills-loader.ts";
24
24
  export type { AgentSpec, ApprovalConfig, ApprovalRiskLevel, AuthConfig, ConfigSpec, DefineSkillInput, HttpErrorCode, Logger, LoggerConfig, LondaiRunOptions, LondaiServerHandle, ProviderConfigEntry, RateLimitConfig, SessionConfig, SkillSpec, } from "./types.ts";
25
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,mBAAmB,CAAC;AAG3B,OAAO,EACN,KAAK,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,YAAY,EACZ,GAAG,EACH,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,kBAAkB,EACvB,EAAE,EACF,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,KAAK,GACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtH,YAAY,EACX,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,eAAe,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACN,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,aAAa,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,2BAA2B,IAAI,YAAY,EAC3C,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,SAAS,GACT,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,mBAAmB,CAAC;AAG3B,OAAO,EACN,KAAK,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,YAAY,EACZ,GAAG,EACH,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,kBAAkB,EACvB,EAAE,EACF,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,KAAK,GACV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtH,YAAY,EACX,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,eAAe,GACf,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACN,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,aAAa,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,2BAA2B,IAAI,YAAY,EAC3C,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,SAAS,GACT,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -20,5 +20,5 @@ export { codeToStatus, errorCodeOf, errorToStatus, FrameworkError } from "./erro
20
20
  export { createConsoleLogger, silentLogger } from "./logger.js";
21
21
  export { londai } from "./londai.js";
22
22
  export { getAuthConfig, getModels, requireConfig, requireModels, resetRegistry, } from "./registry.js";
23
- export { formatSkillsForSystemPrompt as formatSkills, loadSkillFromFile, parseFrontmatter, validateSkillDescription, validateSkillName, } from "./skills-loader.js";
23
+ export { formatSkillsForSystemPrompt as formatSkills, validateSkillDescription, validateSkillName, } from "./skills-loader.js";
24
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,mBAAmB,CAAC,CAAC,wDAAwD;AAEpF,gEAAgE;AAChE,OAAO,EACN,KAAK,EAML,YAAY,EACZ,GAAG,EAKH,EAAE,GAMF,MAAM,cAAc,CAAC;AACtB,sDAAsD;AACtD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUtH,2CAA2C;AAC3C,OAAO,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACN,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,aAAa,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,2BAA2B,IAAI,YAAY,EAC3C,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,mBAAmB,CAAC,CAAC,wDAAwD;AAEpF,gEAAgE;AAChE,OAAO,EACN,KAAK,EAML,YAAY,EACZ,GAAG,EAKH,EAAE,GAMF,MAAM,cAAc,CAAC;AACtB,sDAAsD;AACtD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAUtH,2CAA2C;AAC3C,OAAO,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,GACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACN,aAAa,EACb,SAAS,EACT,aAAa,EACb,aAAa,EACb,aAAa,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,2BAA2B,IAAI,YAAY,EAC3C,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-builder.d.ts","sourceRoot":"","sources":["../../src/server/agent-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACN,KAAK,EACL,KAAK,YAAY,EAIjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAIhF,MAAM,WAAW,iBAAiB;IACjC,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IACnC,4DAA4D;IAC5D,oBAAoB,EAAE,CAAC,IAAI,EAAE;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KAClB,KAAK,IAAI,CAAC;IACX,cAAc,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC;CACxC;AASD;;;;;GAKG;AACH,wBAAsB,UAAU,CAC/B,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,KAAK,CAAC,CAsFhB"}
1
+ {"version":3,"file":"agent-builder.d.ts","sourceRoot":"","sources":["../../src/server/agent-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACN,KAAK,EACL,KAAK,YAAY,EAKjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAgC,MAAM,aAAa,CAAC;AAI3F,MAAM,WAAW,iBAAiB;IACjC,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IACnC,4DAA4D;IAC5D,oBAAoB,EAAE,CAAC,IAAI,EAAE;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,OAAO,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KAClB,KAAK,IAAI,CAAC;IACX,cAAc,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC;CACxC;AA0DD;;;;;GAKG;AACH,wBAAsB,UAAU,CAC/B,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,KAAK,CAAC,CAuFhB"}
@@ -16,14 +16,60 @@
16
16
  * registry's pending-approval machinery.
17
17
  */
18
18
  import { Agent, } from "@londai/core";
19
+ import { z } from "zod";
19
20
  import { registerPendingApproval, resolvePendingApproval } from "../registry.js";
20
- import { formatSkillsForSystemPrompt } from "../skills-loader.js";
21
+ import { formatSkillInvocation, formatSkillsForSystemPrompt } from "../skills-loader.js";
21
22
  const RISK_RANK = { safe: 0, moderate: 1, destructive: 2 };
22
23
  const DEFAULT_APPROVAL_TIMEOUT_MS = 5 * 60_000;
23
24
  function shouldGate(risk, threshold) {
24
25
  const rank = RISK_RANK[risk ?? "safe"] ?? 0;
25
26
  return rank >= RISK_RANK[threshold];
26
27
  }
28
+ function buildSkillLoaderTool(skills) {
29
+ const visibleSkills = skills.filter((skill) => !skill.disableModelInvocation);
30
+ if (visibleSkills.length === 0)
31
+ return undefined;
32
+ return {
33
+ name: "load_skill",
34
+ label: "Load Skill",
35
+ description: "Load the full markdown instructions for one of the available skills by name. Use this before applying a skill.",
36
+ risk: "safe",
37
+ executionMode: "sequential",
38
+ parameters: skillLoaderParameters,
39
+ async execute(_toolCallId, params) {
40
+ const { name } = params;
41
+ const skill = visibleSkills.find((candidate) => candidate.name === name);
42
+ if (!skill) {
43
+ return {
44
+ content: [
45
+ {
46
+ type: "text",
47
+ text: `Skill "${name}" not found. Available skills: ${visibleSkills.map((candidate) => candidate.name).join(", ")}`,
48
+ },
49
+ ],
50
+ details: { name, availableSkills: visibleSkills.map((candidate) => candidate.name) },
51
+ isError: true,
52
+ };
53
+ }
54
+ return {
55
+ content: [{ type: "text", text: formatSkillInvocation(skill) }],
56
+ details: { name: skill.name },
57
+ };
58
+ },
59
+ };
60
+ }
61
+ const skillLoaderParameters = z.object({
62
+ name: z.string().describe("The exact skill name from the <available_skills> block."),
63
+ });
64
+ function withSkillLoaderTool(tools, skills) {
65
+ const skillLoaderTool = buildSkillLoaderTool(skills);
66
+ if (!skillLoaderTool)
67
+ return tools;
68
+ if (tools.some((tool) => tool.name === skillLoaderTool.name)) {
69
+ throw new Error(`londai: tool name "${skillLoaderTool.name}" is reserved when agent skills are configured.`);
70
+ }
71
+ return [...tools, skillLoaderTool];
72
+ }
27
73
  /**
28
74
  * Build a per-request `Agent` from the spec.
29
75
  *
@@ -40,6 +86,7 @@ export async function buildAgent(spec, ctx, models, approval) {
40
86
  }
41
87
  // Compose system prompt: base (static or dynamic) + skills block.
42
88
  const skillsBlock = formatSkillsForSystemPrompt(spec.skills);
89
+ const tools = withSkillLoaderTool(spec.tools, spec.skills);
43
90
  const basePromptFn = spec.systemPrompt;
44
91
  const systemPrompt = typeof basePromptFn === "function"
45
92
  ? await Promise.resolve(basePromptFn({ messages: ctx.messages ?? [], userId: ctx.userId })).then((base) => (skillsBlock ? `${base}${skillsBlock}` : base))
@@ -57,7 +104,7 @@ export async function buildAgent(spec, ctx, models, approval) {
57
104
  const userResult = await userHook?.(context, signal);
58
105
  if (userResult?.block)
59
106
  return userResult;
60
- const tool = spec.tools.find((t) => t.name === context.toolCall.name);
107
+ const tool = tools.find((t) => t.name === context.toolCall.name);
61
108
  if (!shouldGate(tool?.risk, threshold))
62
109
  return userResult;
63
110
  // Pause loop: await approval decision via registry.
@@ -92,7 +139,7 @@ export async function buildAgent(spec, ctx, models, approval) {
92
139
  systemPrompt,
93
140
  model: model,
94
141
  thinkingLevel: spec.thinkingLevel ?? "off",
95
- tools: spec.tools,
142
+ tools,
96
143
  messages: ctx.messages ?? [],
97
144
  },
98
145
  beforeToolCall,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/server/agent-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-builder.js","sourceRoot":"","sources":["../../src/server/agent-builder.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,19 @@
4
4
  import type { AgentMessage } from "@londai/core";
5
5
  import type { SessionRepo, SessionSnapshot } from "@londai/session";
6
6
  import type { Context } from "hono";
7
+ import type { AgentSpec } from "../../types.ts";
7
8
  export interface ParsedChatBody {
8
- message: string | AgentMessage[];
9
+ message?: string | AgentMessage[];
10
+ /** Invoke a loaded skill by name, using `message`/`additionalInstructions` as extra instructions. */
11
+ skill?: string;
12
+ additionalInstructions?: string;
9
13
  /** Pre-existing conversation history (seeds the agent). */
10
14
  messages?: AgentMessage[];
11
15
  conversationId: string;
12
16
  conversationIdProvided: boolean;
13
17
  }
14
18
  export declare function parseChatBody(c: Context): Promise<ParsedChatBody>;
19
+ export declare function resolvePromptInput(body: ParsedChatBody, spec: AgentSpec): string | AgentMessage[];
15
20
  export declare function ensureConversationId(body: {
16
21
  conversationId?: unknown;
17
22
  }, c: Context): string;
@@ -4,6 +4,7 @@
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { FrameworkError } from "../../errors.js";
6
6
  import { getSessionRepo } from "../../registry.js";
7
+ import { formatSkillInvocation } from "../../skills-loader.js";
7
8
  export async function parseChatBody(c) {
8
9
  let json;
9
10
  try {
@@ -17,9 +18,16 @@ export async function parseChatBody(c) {
17
18
  }
18
19
  const body = json;
19
20
  const message = body.message;
20
- if (typeof message !== "string" && !Array.isArray(message)) {
21
+ const skill = parseSkillName(body.skill);
22
+ if (message === undefined && skill === undefined) {
23
+ throw new FrameworkError("validation", "`message` is required unless `skill` is provided.");
24
+ }
25
+ if (message !== undefined && typeof message !== "string" && !Array.isArray(message)) {
21
26
  throw new FrameworkError("validation", "`message` must be a string or an array of messages.");
22
27
  }
28
+ if (skill !== undefined && Array.isArray(message)) {
29
+ throw new FrameworkError("validation", "`message` must be a string when `skill` is provided.");
30
+ }
23
31
  if (Array.isArray(message)) {
24
32
  for (const m of message) {
25
33
  if (typeof m !== "object" || m === null || !("role" in m)) {
@@ -27,6 +35,9 @@ export async function parseChatBody(c) {
27
35
  }
28
36
  }
29
37
  }
38
+ if (body.additionalInstructions !== undefined && typeof body.additionalInstructions !== "string") {
39
+ throw new FrameworkError("validation", "`additionalInstructions` must be a string.");
40
+ }
30
41
  const messagesField = body.messages;
31
42
  if (messagesField !== undefined &&
32
43
  (!Array.isArray(messagesField) ||
@@ -37,11 +48,36 @@ export async function parseChatBody(c) {
37
48
  const conversationId = ensureConversationId({ conversationId: body.conversationId }, c);
38
49
  return {
39
50
  message: message,
51
+ skill,
52
+ additionalInstructions: body.additionalInstructions,
40
53
  messages: messagesField,
41
54
  conversationId,
42
55
  conversationIdProvided,
43
56
  };
44
57
  }
58
+ function parseSkillName(skill) {
59
+ if (skill === undefined)
60
+ return undefined;
61
+ if (typeof skill === "string" && skill.length > 0)
62
+ return skill;
63
+ if (typeof skill === "object" && skill !== null && "name" in skill) {
64
+ const name = skill.name;
65
+ if (typeof name === "string" && name.length > 0)
66
+ return name;
67
+ }
68
+ throw new FrameworkError("validation", "`skill` must be a non-empty string or an object with a non-empty `name`.");
69
+ }
70
+ export function resolvePromptInput(body, spec) {
71
+ if (!body.skill) {
72
+ return body.message;
73
+ }
74
+ const skill = spec.skills.find((candidate) => candidate.name === body.skill);
75
+ if (!skill) {
76
+ throw new FrameworkError("validation", `Unknown skill: ${body.skill}`);
77
+ }
78
+ const additionalInstructions = body.additionalInstructions ?? (typeof body.message === "string" ? body.message : undefined);
79
+ return formatSkillInvocation(skill, additionalInstructions);
80
+ }
45
81
  function hasConversationId(body, c) {
46
82
  return ((typeof body.conversationId === "string" && body.conversationId.length > 0) ||
47
83
  typeof c.req.header("x-londai-conversation") === "string");
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/server/routes/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/server/routes/common.ts"],"names":[],"mappings":"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"}
@@ -1,46 +1,21 @@
1
1
  /**
2
- * Skill loading + system-prompt formatting.
2
+ * Skill validation + system-prompt formatting.
3
3
  *
4
- * Copy-adapted from pi `packages/agent/src/harness/skills.ts` (frontmatter parse,
5
- * name/description validation) and `packages/agent/src/harness/system-prompt.ts`
6
- * (`formatSkillsForSystemPrompt` the agentskills.io `<available_skills>` block).
7
- *
8
- * Londai differences:
9
- * - Skills are loaded from a single explicit `source` path (no directory walking,
10
- * no ignore files) because londai never auto-discovers — `defineSkill` is explicit.
11
- * - Frontmatter + body are resolved at `defineSkill` time so file errors surface at boot.
4
+ * Londai skills are code-first: `defineSkill({ content })` receives the actual
5
+ * markdown instructions as a TypeScript string. There is no filesystem loading
6
+ * in the framework runtime, which keeps bundled/server deployments predictable.
12
7
  */
13
8
  import type { SkillSpec } from "./types.ts";
14
- interface SkillFrontmatter {
15
- name?: string;
16
- description?: string;
17
- "disable-model-invocation"?: boolean;
18
- [key: string]: unknown;
19
- }
20
- /** Parse YAML frontmatter delimited by leading `---` ... `---`. */
21
- export declare function parseFrontmatter<T extends Record<string, unknown>>(content: string): {
22
- frontmatter: T;
23
- body: string;
24
- };
25
9
  /**
26
10
  * Format skills into the `<available_skills>` system-prompt block.
27
11
  * Copy-adapted from pi `formatSkillsForSystemPrompt`.
28
12
  */
29
13
  export declare function formatSkillsForSystemPrompt(skills: SkillSpec[]): string;
14
+ /** Format a full skill invocation prompt, optionally appending user instructions. */
15
+ export declare function formatSkillInvocation(skill: SkillSpec, additionalInstructions?: string): string;
30
16
  /** Validate a skill name (lowercase kebab). Returns a list of warnings (non-fatal). */
31
17
  export declare function validateSkillName(name: string): string[];
32
18
  /** Validate a skill description. Returns a list of warnings (non-fatal). */
33
19
  export declare function validateSkillDescription(description: string | undefined): string[];
34
- /**
35
- * Load a skill from a markdown file on disk.
36
- *
37
- * Reads synchronously at `defineSkill` time so file errors surface during boot
38
- * rather than mid-request.
39
- */
40
- export declare function loadSkillFromFile(filePath: string): {
41
- frontmatter: SkillFrontmatter;
42
- content: string;
43
- resolvedPath: string;
44
- };
45
- export {};
20
+ export declare function looksLikeSkillSourcePath(content: string): boolean;
46
21
  //# sourceMappingURL=skills-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills-loader.d.ts","sourceRoot":"","sources":["../src/skills-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK5C,UAAU,gBAAgB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,OAAO,EAAE,MAAM,GACb;IACF,WAAW,EAAE,CAAC,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACb,CAaA;AAWD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAsBvE;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASxD;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAQlF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG;IACpD,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACrB,CAeA"}
1
+ {"version":3,"file":"skills-loader.d.ts","sourceRoot":"","sources":["../src/skills-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAc5C;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAoBvE;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,sBAAsB,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/F;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CASxD;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAQlF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIjE"}
@@ -1,35 +1,12 @@
1
1
  /**
2
- * Skill loading + system-prompt formatting.
2
+ * Skill validation + system-prompt formatting.
3
3
  *
4
- * Copy-adapted from pi `packages/agent/src/harness/skills.ts` (frontmatter parse,
5
- * name/description validation) and `packages/agent/src/harness/system-prompt.ts`
6
- * (`formatSkillsForSystemPrompt` the agentskills.io `<available_skills>` block).
7
- *
8
- * Londai differences:
9
- * - Skills are loaded from a single explicit `source` path (no directory walking,
10
- * no ignore files) because londai never auto-discovers — `defineSkill` is explicit.
11
- * - Frontmatter + body are resolved at `defineSkill` time so file errors surface at boot.
4
+ * Londai skills are code-first: `defineSkill({ content })` receives the actual
5
+ * markdown instructions as a TypeScript string. There is no filesystem loading
6
+ * in the framework runtime, which keeps bundled/server deployments predictable.
12
7
  */
13
- import { readFileSync } from "node:fs";
14
- import { extname, resolve } from "node:path";
15
- import { parse } from "yaml";
16
8
  const MAX_NAME_LENGTH = 64;
17
9
  const MAX_DESCRIPTION_LENGTH = 1024;
18
- /** Parse YAML frontmatter delimited by leading `---` ... `---`. */
19
- export function parseFrontmatter(content) {
20
- const normalized = content.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
21
- if (!normalized.startsWith("---")) {
22
- return { frontmatter: {}, body: normalized };
23
- }
24
- const endIndex = normalized.indexOf("\n---", 3);
25
- if (endIndex === -1) {
26
- return { frontmatter: {}, body: normalized };
27
- }
28
- const yamlString = normalized.slice(4, endIndex).trim();
29
- const body = normalized.slice(endIndex + 4).trim();
30
- const frontmatter = (parse(yamlString) ?? {});
31
- return { frontmatter, body };
32
- }
33
10
  function escapeXml(value) {
34
11
  return value
35
12
  .replace(/&/g, "&amp;")
@@ -48,8 +25,7 @@ export function formatSkillsForSystemPrompt(skills) {
48
25
  return "";
49
26
  const lines = [
50
27
  "\n\nThe following skills provide specialized instructions for specific tasks.",
51
- "Read the full skill instructions when the task matches its description.",
52
- "When a skill references a relative path, resolve it against the skill directory.",
28
+ "When the task matches a skill description, call the load_skill tool with the exact skill name before applying it.",
53
29
  "",
54
30
  "<available_skills>",
55
31
  ];
@@ -57,13 +33,17 @@ export function formatSkillsForSystemPrompt(skills) {
57
33
  lines.push(" <skill>");
58
34
  lines.push(` <name>${escapeXml(skill.name)}</name>`);
59
35
  lines.push(` <description>${escapeXml(skill.description)}</description>`);
60
- if (skill.filePath)
61
- lines.push(` <location>${escapeXml(skill.filePath)}</location>`);
62
36
  lines.push(" </skill>");
63
37
  }
64
38
  lines.push("</available_skills>");
65
39
  return lines.join("\n");
66
40
  }
41
+ /** Format a full skill invocation prompt, optionally appending user instructions. */
42
+ export function formatSkillInvocation(skill, additionalInstructions) {
43
+ const skillBlock = `<skill name="${escapeXml(skill.name)}">\n${skill.content}\n</skill>`;
44
+ const extra = additionalInstructions?.trim();
45
+ return extra ? `${skillBlock}\n\n${extra}` : skillBlock;
46
+ }
67
47
  /** Validate a skill name (lowercase kebab). Returns a list of warnings (non-fatal). */
68
48
  export function validateSkillName(name) {
69
49
  const errors = [];
@@ -89,25 +69,10 @@ export function validateSkillDescription(description) {
89
69
  }
90
70
  return errors;
91
71
  }
92
- /**
93
- * Load a skill from a markdown file on disk.
94
- *
95
- * Reads synchronously at `defineSkill` time so file errors surface during boot
96
- * rather than mid-request.
97
- */
98
- export function loadSkillFromFile(filePath) {
99
- const resolvedPath = resolve(filePath);
100
- if (extname(resolvedPath) !== ".md") {
101
- throw new Error(`londai: skill source must be a .md file (got: ${filePath})`);
102
- }
103
- let raw;
104
- try {
105
- raw = readFileSync(resolvedPath, "utf8");
106
- }
107
- catch (error) {
108
- throw new Error(`londai: failed to read skill "${filePath}": ${error instanceof Error ? error.message : String(error)}`);
109
- }
110
- const { frontmatter, body } = parseFrontmatter(raw);
111
- return { frontmatter, content: body, resolvedPath };
72
+ export function looksLikeSkillSourcePath(content) {
73
+ const trimmed = content.trim();
74
+ if (trimmed.includes("\n"))
75
+ return false;
76
+ return /\.md(?:[#?].*)?$/i.test(trimmed);
112
77
  }
113
78
  //# sourceMappingURL=skills-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills-loader.js","sourceRoot":"","sources":["../src/skills-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills-loader.js","sourceRoot":"","sources":["../src/skills-loader.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -67,20 +67,18 @@ export interface ApprovalConfig {
67
67
  /** Auto-deny after N ms (default 5 minutes). */
68
68
  timeoutMs?: number;
69
69
  }
70
- /** A loaded skill definition (frontmatter + content). */
70
+ /** A loaded skill definition. Content is explicit TypeScript string data. */
71
71
  export interface SkillSpec {
72
72
  name: string;
73
73
  description: string;
74
74
  content: string;
75
- filePath?: string;
76
75
  disableModelInvocation?: boolean;
77
76
  }
78
77
  /** Input to `defineSkill`. */
79
78
  export interface DefineSkillInput {
80
79
  name: string;
81
- description?: string;
82
- source?: string;
83
- content?: string;
80
+ description: string;
81
+ content: string;
84
82
  disableModelInvocation?: boolean;
85
83
  }
86
84
  /** Hook set attachable to an agent. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "londai",
3
- "version": "0.1.0-alpha.0",
3
+ "version": "0.1.0-alpha.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -32,9 +32,8 @@
32
32
  "@londai/providers": "0.1.0-alpha.0",
33
33
  "@londai/session": "0.1.0-alpha.0",
34
34
  "@hono/node-server": "^2",
35
- "create-loandai": "0.1.0-alpha.0",
35
+ "create-loandai": "0.1.0-alpha.1",
36
36
  "hono": "^4",
37
- "yaml": "^2",
38
37
  "zod": "^3.25.0",
39
38
  "zod-to-json-schema": "^3"
40
39
  },