@design-intelligence/ghost 0.23.0 → 0.25.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.
Files changed (174) hide show
  1. package/README.md +55 -28
  2. package/dist/commands/checks-command.js +3 -3
  3. package/dist/commands/checks-command.js.map +1 -1
  4. package/dist/commands/command-discovery.d.ts.map +1 -1
  5. package/dist/commands/command-discovery.js +5 -5
  6. package/dist/commands/command-discovery.js.map +1 -1
  7. package/dist/commands/export-command.d.ts.map +1 -1
  8. package/dist/commands/export-command.js +10 -10
  9. package/dist/commands/export-command.js.map +1 -1
  10. package/dist/commands/fingerprint-commands.d.ts +2 -2
  11. package/dist/commands/fingerprint-commands.d.ts.map +1 -1
  12. package/dist/commands/fingerprint-commands.js +7 -7
  13. package/dist/commands/fingerprint-commands.js.map +1 -1
  14. package/dist/commands/gather-command.d.ts.map +1 -1
  15. package/dist/commands/gather-command.js +72 -87
  16. package/dist/commands/gather-command.js.map +1 -1
  17. package/dist/commands/init-command.d.ts.map +1 -1
  18. package/dist/commands/init-command.js +6 -6
  19. package/dist/commands/init-command.js.map +1 -1
  20. package/dist/commands/pull-command.d.ts.map +1 -1
  21. package/dist/commands/pull-command.js +87 -140
  22. package/dist/commands/pull-command.js.map +1 -1
  23. package/dist/commands/pulse-command.js +6 -6
  24. package/dist/commands/pulse-command.js.map +1 -1
  25. package/dist/commands/review-command.js +7 -7
  26. package/dist/commands/review-command.js.map +1 -1
  27. package/dist/commands/skill-command.js +2 -2
  28. package/dist/embed/gather.d.ts +9 -0
  29. package/dist/embed/gather.d.ts.map +1 -0
  30. package/dist/embed/gather.js +80 -0
  31. package/dist/embed/gather.js.map +1 -0
  32. package/dist/embed/index.d.ts +9 -0
  33. package/dist/embed/index.d.ts.map +1 -0
  34. package/dist/embed/index.js +6 -0
  35. package/dist/embed/index.js.map +1 -0
  36. package/dist/embed/inspect.d.ts +3 -0
  37. package/dist/embed/inspect.d.ts.map +1 -0
  38. package/dist/embed/inspect.js +155 -0
  39. package/dist/embed/inspect.js.map +1 -0
  40. package/dist/embed/pull.d.ts +8 -0
  41. package/dist/embed/pull.d.ts.map +1 -0
  42. package/dist/embed/pull.js +96 -0
  43. package/dist/embed/pull.js.map +1 -0
  44. package/dist/embed/readonly-map.d.ts +3 -0
  45. package/dist/embed/readonly-map.d.ts.map +1 -0
  46. package/dist/embed/readonly-map.js +33 -0
  47. package/dist/embed/readonly-map.js.map +1 -0
  48. package/dist/embed/snapshot.d.ts +4 -0
  49. package/dist/embed/snapshot.d.ts.map +1 -0
  50. package/dist/embed/snapshot.js +105 -0
  51. package/dist/embed/snapshot.js.map +1 -0
  52. package/dist/embed/types.d.ts +156 -0
  53. package/dist/embed/types.d.ts.map +1 -0
  54. package/dist/embed/types.js +2 -0
  55. package/dist/embed/types.js.map +1 -0
  56. package/dist/fingerprint.d.ts +2 -1
  57. package/dist/fingerprint.d.ts.map +1 -1
  58. package/dist/fingerprint.js +1 -0
  59. package/dist/fingerprint.js.map +1 -1
  60. package/dist/ghost-core/catalog/assemble.d.ts.map +1 -1
  61. package/dist/ghost-core/catalog/assemble.js +2 -1
  62. package/dist/ghost-core/catalog/assemble.js.map +1 -1
  63. package/dist/ghost-core/catalog/menu.d.ts +6 -4
  64. package/dist/ghost-core/catalog/menu.d.ts.map +1 -1
  65. package/dist/ghost-core/catalog/menu.js +1 -0
  66. package/dist/ghost-core/catalog/menu.js.map +1 -1
  67. package/dist/ghost-core/catalog/types.d.ts +4 -2
  68. package/dist/ghost-core/catalog/types.d.ts.map +1 -1
  69. package/dist/ghost-core/check/index.d.ts +1 -1
  70. package/dist/ghost-core/check/index.js +1 -1
  71. package/dist/ghost-core/check/lint.d.ts +2 -2
  72. package/dist/ghost-core/check/lint.js +2 -2
  73. package/dist/ghost-core/check/load.d.ts +1 -1
  74. package/dist/ghost-core/check/load.js +3 -3
  75. package/dist/ghost-core/check/types.d.ts +3 -3
  76. package/dist/ghost-core/index.d.ts +10 -4
  77. package/dist/ghost-core/index.d.ts.map +1 -1
  78. package/dist/ghost-core/index.js +7 -3
  79. package/dist/ghost-core/index.js.map +1 -1
  80. package/dist/ghost-core/markdown.d.ts +1 -1
  81. package/dist/ghost-core/markdown.js +1 -1
  82. package/dist/ghost-core/material-transport.d.ts +11 -0
  83. package/dist/ghost-core/material-transport.d.ts.map +1 -1
  84. package/dist/ghost-core/material-transport.js +80 -8
  85. package/dist/ghost-core/material-transport.js.map +1 -1
  86. package/dist/ghost-core/node/index.d.ts +1 -1
  87. package/dist/ghost-core/node/index.d.ts.map +1 -1
  88. package/dist/ghost-core/node/index.js +1 -1
  89. package/dist/ghost-core/node/index.js.map +1 -1
  90. package/dist/ghost-core/node/schema.js +1 -1
  91. package/dist/ghost-core/node/steering.d.ts +1 -0
  92. package/dist/ghost-core/node/steering.d.ts.map +1 -1
  93. package/dist/ghost-core/node/steering.js +4 -1
  94. package/dist/ghost-core/node/steering.js.map +1 -1
  95. package/dist/ghost-core/node/types.d.ts +4 -5
  96. package/dist/ghost-core/node/types.d.ts.map +1 -1
  97. package/dist/ghost-core/package-manifest.d.ts +23 -13
  98. package/dist/ghost-core/package-manifest.d.ts.map +1 -1
  99. package/dist/ghost-core/package-manifest.js +20 -7
  100. package/dist/ghost-core/package-manifest.js.map +1 -1
  101. package/dist/ghost-core/skill-bundle-loader.d.ts +1 -1
  102. package/dist/ghost-core/skill-bundle-loader.js +1 -1
  103. package/dist/index.d.ts +3 -1
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +3 -1
  106. package/dist/index.js.map +1 -1
  107. package/dist/init-payloads/median/cliche.median.md +6 -6
  108. package/dist/init-payloads/median/median-tells.md +1 -1
  109. package/dist/init-payloads/skeleton/brand.md +4 -3
  110. package/dist/init-payloads/skeleton/glossary.md +1 -1
  111. package/dist/init-payloads/vessel-light/anti-goal.median.md +6 -6
  112. package/dist/init-payloads/vessel-light/checks/motion-restraint.md +1 -1
  113. package/dist/init-payloads/vessel-light/manifest.yml +1 -1
  114. package/dist/init-payloads/vessel-light/materials/ref/composition.form.html +2 -2
  115. package/dist/init-payloads/vessel-light/materials/ref/composition.overlay.html +3 -3
  116. package/dist/observability-events.d.ts +1 -0
  117. package/dist/observability-events.d.ts.map +1 -1
  118. package/dist/observability-events.js +4 -1
  119. package/dist/observability-events.js.map +1 -1
  120. package/dist/package.d.ts +7 -0
  121. package/dist/package.d.ts.map +1 -0
  122. package/dist/package.js +4 -0
  123. package/dist/package.js.map +1 -0
  124. package/dist/review/resolve.js +1 -1
  125. package/dist/review/resolve.js.map +1 -1
  126. package/dist/review/review-packet.d.ts +5 -3
  127. package/dist/review/review-packet.d.ts.map +1 -1
  128. package/dist/review/review-packet.js +12 -11
  129. package/dist/review/review-packet.js.map +1 -1
  130. package/dist/scan/constants.d.ts +6 -2
  131. package/dist/scan/constants.d.ts.map +1 -1
  132. package/dist/scan/constants.js +8 -4
  133. package/dist/scan/constants.js.map +1 -1
  134. package/dist/scan/file-kind.d.ts +1 -1
  135. package/dist/scan/file-kind.d.ts.map +1 -1
  136. package/dist/scan/file-kind.js +11 -11
  137. package/dist/scan/file-kind.js.map +1 -1
  138. package/dist/scan/fingerprint-package-lint.d.ts +3 -1
  139. package/dist/scan/fingerprint-package-lint.d.ts.map +1 -1
  140. package/dist/scan/fingerprint-package-lint.js +14 -12
  141. package/dist/scan/fingerprint-package-lint.js.map +1 -1
  142. package/dist/scan/fingerprint-package-loader.d.ts +7 -3
  143. package/dist/scan/fingerprint-package-loader.d.ts.map +1 -1
  144. package/dist/scan/fingerprint-package-loader.js +10 -6
  145. package/dist/scan/fingerprint-package-loader.js.map +1 -1
  146. package/dist/scan/fingerprint-package.d.ts +30 -14
  147. package/dist/scan/fingerprint-package.d.ts.map +1 -1
  148. package/dist/scan/fingerprint-package.js +17 -9
  149. package/dist/scan/fingerprint-package.js.map +1 -1
  150. package/dist/scan/index.d.ts +3 -1
  151. package/dist/scan/index.d.ts.map +1 -1
  152. package/dist/scan/index.js +3 -1
  153. package/dist/scan/index.js.map +1 -1
  154. package/dist/scan/tarball.d.ts +2 -2
  155. package/dist/scan/tarball.js +3 -3
  156. package/dist/scan/tarball.js.map +1 -1
  157. package/dist/scan/templates.d.ts +1 -1
  158. package/dist/scan/templates.d.ts.map +1 -1
  159. package/dist/scan/templates.js +7 -283
  160. package/dist/scan/templates.js.map +1 -1
  161. package/dist/skill-bundle/SKILL.md +40 -32
  162. package/dist/skill-bundle/references/adapting-a-starter.md +11 -11
  163. package/dist/skill-bundle/references/authoring-scenarios.md +33 -30
  164. package/dist/skill-bundle/references/blocks.md +19 -20
  165. package/dist/skill-bundle/references/brief.md +13 -11
  166. package/dist/skill-bundle/references/capture.md +66 -39
  167. package/dist/skill-bundle/references/concrete-tiers.md +7 -7
  168. package/dist/skill-bundle/references/distill.md +204 -0
  169. package/dist/skill-bundle/references/making.md +113 -0
  170. package/dist/skill-bundle/references/recall.md +11 -7
  171. package/dist/skill-bundle/references/schema.md +16 -12
  172. package/dist/skill-bundle/references/self-check.md +12 -12
  173. package/dist/skill-bundle/references/steering-audit.md +19 -9
  174. package/package.json +11 -3
@@ -1,18 +1,18 @@
1
1
  import { parseCheckMarkdown } from "./parse.js";
2
2
  /**
3
- * Parse a well-formed Ghost check into a typed document. Assumes the input has
3
+ * Parse a well-formed ghost check into a typed document. Assumes the input has
4
4
  * already passed `lintGhostCheck` (throws on missing required frontmatter).
5
5
  */
6
6
  export function loadGhostCheck(raw) {
7
7
  const { frontmatter, body } = parseCheckMarkdown(raw);
8
8
  if (frontmatter === null) {
9
- throw new Error("Ghost check is missing a YAML frontmatter block.");
9
+ throw new Error("ghost check is missing a YAML frontmatter block.");
10
10
  }
11
11
  const name = frontmatter.name;
12
12
  const description = frontmatter.description;
13
13
  const severity = frontmatter.severity;
14
14
  if (typeof name !== "string" || typeof description !== "string") {
15
- throw new Error("Ghost check frontmatter is missing name or description.");
15
+ throw new Error("ghost check frontmatter is missing name or description.");
16
16
  }
17
17
  const tools = Array.isArray(frontmatter.tools)
18
18
  ? frontmatter.tools.filter((tool) => typeof tool === "string")
@@ -3,9 +3,9 @@ export declare const GHOST_CHECK_SCHEMA: "ghost.check/v1";
3
3
  export declare const GHOST_CHECK_SEVERITIES: readonly ["high", "medium", "low"];
4
4
  export type GhostCheckMarkdownSeverity = (typeof GHOST_CHECK_SEVERITIES)[number];
5
5
  /**
6
- * A Ghost check: markdown + frontmatter, evaluated by an agent — never run by
7
- * Ghost. Shape-compatible with the established `.agents/checks` format, plus the
8
- * Ghost addition `source:` (the fingerprint prose the check enforces). Every
6
+ * A ghost check: markdown + frontmatter, evaluated by an agent — never run by
7
+ * ghost. Shape-compatible with the established `.agents/checks` format, plus the
8
+ * ghost addition `source:` (the fingerprint prose the check enforces). Every
9
9
  * check is offered to the reviewer; the agent judges relevance.
10
10
  */
11
11
  export interface GhostCheckFrontmatter {
@@ -3,11 +3,17 @@ export { GHOST_CHECK_SCHEMA, GHOST_CHECK_SEVERITIES, type GhostCheckDocument, ty
3
3
  export { EXIT, UsageError } from "./errors.js";
4
4
  export { hasGlobMagic, matchesGlob, normalizeGlobPath } from "./glob.js";
5
5
  export { type GhostGlossaryDocument, GhostGlossaryFrontmatterSchema, type GhostGlossaryKind, type GhostGlossaryParseResult, parseGlossary, } from "./glossary.js";
6
- export { type ExpandedLocalMaterialLocator, expandLocalMaterialLocator, listBundledMaterialFiles, type MaterialTransportOptions, type MaterialTransportResult, materialLocatorClaimsPath, resolveLocalMaterialLocator, type TransportedMaterial, type TransportedMaterialTier, transportMaterials, } from "./material-transport.js";
6
+ export { type ExpandedLocalMaterialLocator, expandLocalMaterialLocator, inferMaterialMime, isBinaryMaterial, isTextMime, listBundledMaterialFiles, type MaterialMimeInfo, type MaterialTransportOptions, type MaterialTransportResult, materialLocatorClaimsPath, resolveContainedRealFile, resolveLocalMaterialLocator, type TransportedMaterial, type TransportedMaterialTier, transportMaterials, } from "./material-transport.js";
7
7
  export { type ClassifiedGhostMaterialLocator, classifyMaterialLocator, type GhostMaterialLocatorKind, validateMaterialLocator, } from "./materials.js";
8
- export { carriesConcreteMaterial, extractSkeletonFences, extractSkeletonSections, type FencedBlock, GHOST_NODE_SCHEMA, type GhostNodeDocument, type GhostNodeFrontmatter, GhostNodeFrontmatterSchema, type GhostNodeLintIssue, type GhostNodeLintReport, type GhostNodeLintSeverity, lintGhostNode, NodeIdSchema, NodeRefSchema, type ParseNodeResult, parseNode, type SkeletonSection, serializeNode, stripSkeletonSections, } from "./node/index.js";
9
- export type { GhostFingerprintPackageManifest } from "./package-manifest.js";
10
- export { GHOST_FINGERPRINT_PACKAGE_SCHEMA, GhostFingerprintPackageManifestSchema, } from "./package-manifest.js";
8
+ export { carriesConcreteMaterial, extractSkeletonFences, extractSkeletonSections, type FencedBlock, GHOST_NODE_SCHEMA, type GhostNodeDocument, type GhostNodeFrontmatter, GhostNodeFrontmatterSchema, type GhostNodeLintIssue, type GhostNodeLintReport, type GhostNodeLintSeverity, hasSubstantialFencedExample, lintGhostNode, NodeIdSchema, NodeRefSchema, type ParseNodeResult, parseNode, type SkeletonSection, serializeNode, stripSkeletonSections, } from "./node/index.js";
9
+ export type {
10
+ /** @deprecated Use `GhostPackageManifest`. */
11
+ GhostFingerprintPackageManifest, GhostPackageManifest, } from "./package-manifest.js";
12
+ export {
13
+ /** @deprecated Use `GHOST_PACKAGE_SCHEMA`. */
14
+ GHOST_FINGERPRINT_PACKAGE_SCHEMA, GHOST_PACKAGE_SCHEMA,
15
+ /** @deprecated Use `GhostPackageManifestSchema`. */
16
+ GhostFingerprintPackageManifestSchema, GhostPackageManifestSchema, } from "./package-manifest.js";
11
17
  export type { SkillBundleFile } from "./skill-bundle-loader.js";
12
18
  export { loadSkillBundle } from "./skill-bundle-loader.js";
13
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ghost-core/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,oBAAoB,EACzB,eAAe,EACf,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,cAAc,EACd,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EACL,KAAK,qBAAqB,EAC1B,8BAA8B,EAC9B,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,4BAA4B,EACjC,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,yBAAyB,EACzB,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,WAAW,EAChB,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,aAAa,EACb,YAAY,EACZ,aAAa,EACb,KAAK,eAAe,EACpB,SAAS,EACT,KAAK,eAAe,EACpB,aAAa,EACb,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EACL,gCAAgC,EAChC,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ghost-core/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,oBAAoB,EACzB,eAAe,EACf,gBAAgB,EAChB,KAAK,gBAAgB,EACrB,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,cAAc,EACd,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EACL,KAAK,qBAAqB,EAC1B,8BAA8B,EAC9B,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,4BAA4B,EACjC,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,wBAAwB,EACxB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,KAAK,wBAAwB,EAC7B,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,WAAW,EAChB,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,aAAa,EACb,KAAK,eAAe,EACpB,SAAS,EACT,KAAK,eAAe,EACpB,aAAa,EACb,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,YAAY;AACV,8CAA8C;AAC9C,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO;AACL,8CAA8C;AAC9C,gCAAgC,EAChC,oBAAoB;AACpB,oDAAoD;AACpD,qCAAqC,EACrC,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
@@ -9,11 +9,15 @@ export { EXIT, UsageError } from "./errors.js";
9
9
  export { hasGlobMagic, matchesGlob, normalizeGlobPath } from "./glob.js";
10
10
  // --- Glossary (reserved fingerprint vocabulary slot) ---
11
11
  export { GhostGlossaryFrontmatterSchema, parseGlossary, } from "./glossary.js";
12
- export { expandLocalMaterialLocator, listBundledMaterialFiles, materialLocatorClaimsPath, resolveLocalMaterialLocator, transportMaterials, } from "./material-transport.js";
12
+ export { expandLocalMaterialLocator, inferMaterialMime, isBinaryMaterial, isTextMime, listBundledMaterialFiles, materialLocatorClaimsPath, resolveContainedRealFile, resolveLocalMaterialLocator, transportMaterials, } from "./material-transport.js";
13
13
  // --- Materials (node locators) ---
14
14
  export { classifyMaterialLocator, validateMaterialLocator, } from "./materials.js";
15
15
  // --- Node (ghost.node/v1) — the markdown node artifact ---
16
- export { carriesConcreteMaterial, extractSkeletonFences, extractSkeletonSections, GHOST_NODE_SCHEMA, GhostNodeFrontmatterSchema, lintGhostNode, NodeIdSchema, NodeRefSchema, parseNode, serializeNode, stripSkeletonSections, } from "./node/index.js";
17
- export { GHOST_FINGERPRINT_PACKAGE_SCHEMA, GhostFingerprintPackageManifestSchema, } from "./package-manifest.js";
16
+ export { carriesConcreteMaterial, extractSkeletonFences, extractSkeletonSections, GHOST_NODE_SCHEMA, GhostNodeFrontmatterSchema, hasSubstantialFencedExample, lintGhostNode, NodeIdSchema, NodeRefSchema, parseNode, serializeNode, stripSkeletonSections, } from "./node/index.js";
17
+ export {
18
+ /** @deprecated Use `GHOST_PACKAGE_SCHEMA`. */
19
+ GHOST_FINGERPRINT_PACKAGE_SCHEMA, GHOST_PACKAGE_SCHEMA,
20
+ /** @deprecated Use `GhostPackageManifestSchema`. */
21
+ GhostFingerprintPackageManifestSchema, GhostPackageManifestSchema, } from "./package-manifest.js";
18
22
  export { loadSkillBundle } from "./skill-bundle-loader.js";
19
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ghost-core/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,wDAAwD;AACxD,OAAO,EAEL,eAAe,EACf,gBAAgB,EAEhB,UAAU,GAIX,MAAM,oBAAoB,CAAC;AAC5B,oEAAoE;AACpE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAOtB,cAAc,EACd,cAAc,EAGd,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,iCAAiC;AACjC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/C,iDAAiD;AACjD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACzE,0DAA0D;AAC1D,OAAO,EAEL,8BAA8B,EAG9B,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,0BAA0B,EAC1B,wBAAwB,EAGxB,yBAAyB,EACzB,2BAA2B,EAG3B,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,oCAAoC;AACpC,OAAO,EAEL,uBAAuB,EAEvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,4DAA4D;AAC5D,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EAEvB,iBAAiB,EAGjB,0BAA0B,EAI1B,aAAa,EACb,YAAY,EACZ,aAAa,EAEb,SAAS,EAET,aAAa,EACb,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gCAAgC,EAChC,qCAAqC,GACtC,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ghost-core/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,wDAAwD;AACxD,OAAO,EAEL,eAAe,EACf,gBAAgB,EAEhB,UAAU,GAIX,MAAM,oBAAoB,CAAC;AAC5B,oEAAoE;AACpE,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EAOtB,cAAc,EACd,cAAc,EAGd,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,iCAAiC;AACjC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC/C,iDAAiD;AACjD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACzE,0DAA0D;AAC1D,OAAO,EAEL,8BAA8B,EAG9B,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,0BAA0B,EAC1B,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,wBAAwB,EAIxB,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAG3B,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,oCAAoC;AACpC,OAAO,EAEL,uBAAuB,EAEvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,4DAA4D;AAC5D,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EAEvB,iBAAiB,EAGjB,0BAA0B,EAI1B,2BAA2B,EAC3B,aAAa,EACb,YAAY,EACZ,aAAa,EAEb,SAAS,EAET,aAAa,EACb,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAOzB,OAAO;AACL,8CAA8C;AAC9C,gCAAgC,EAChC,oBAAoB;AACpB,oDAAoD;AACpD,qCAAqC,EACrC,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC"}
@@ -8,7 +8,7 @@ export interface ParsedMarkdown {
8
8
  * `---\n<yaml>\n---\n<body>`. Returns `frontmatter: null` when there is no
9
9
  * leading frontmatter block (callers report it as an error).
10
10
  *
11
- * Shared by every Ghost markdown+frontmatter artifact (checks, nodes): one
11
+ * Shared by every ghost markdown+frontmatter artifact (checks, nodes): one
12
12
  * envelope, one splitter.
13
13
  */
14
14
  export declare function splitMarkdownFrontmatter(raw: string): ParsedMarkdown;
@@ -4,7 +4,7 @@ import { parse as parseYaml } from "yaml";
4
4
  * `---\n<yaml>\n---\n<body>`. Returns `frontmatter: null` when there is no
5
5
  * leading frontmatter block (callers report it as an error).
6
6
  *
7
- * Shared by every Ghost markdown+frontmatter artifact (checks, nodes): one
7
+ * Shared by every ghost markdown+frontmatter artifact (checks, nodes): one
8
8
  * envelope, one splitter.
9
9
  */
10
10
  export function splitMarkdownFrontmatter(raw) {
@@ -30,6 +30,10 @@ export interface ExpandedLocalMaterialLocator {
30
30
  }>;
31
31
  truncated: boolean;
32
32
  }
33
+ export interface MaterialMimeInfo {
34
+ mime: string;
35
+ contentKind: "text" | "image" | "binary";
36
+ }
33
37
  export declare function transportMaterials(locators: string[] | undefined, options: MaterialTransportOptions): Promise<MaterialTransportResult>;
34
38
  export declare function expandLocalMaterialLocator(locator: string, options: MaterialTransportOptions, expandOptions?: {
35
39
  cap?: number;
@@ -40,4 +44,11 @@ export declare function resolveLocalMaterialLocator(locator: string, options: Ma
40
44
  tier: Exclude<TransportedMaterialTier, "url">;
41
45
  pattern: string;
42
46
  };
47
+ export declare function resolveContainedRealFile(absolutePath: string, repoRoot: string): Promise<{
48
+ realPath: string;
49
+ repoRelativePath: string;
50
+ } | null>;
51
+ export declare function inferMaterialMime(path: string): MaterialMimeInfo;
52
+ export declare function isBinaryMaterial(buffer: Buffer): boolean;
53
+ export declare function isTextMime(mime: string): boolean;
43
54
  //# sourceMappingURL=material-transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"material-transport.d.ts","sourceRoot":"","sources":["../../src/ghost-core/material-transport.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,YAAY,GAAG,KAAK,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,SAAS,EAAE,OAAO,CAAC;CACpB;AAOD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAyDlC;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,wBAAwB,EACjC,aAAa,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,OAAO,CAAC,4BAA4B,CAAC,CAwCvC;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAOT;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,wBAAwB,GAChC;IACD,IAAI,EAAE,OAAO,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;CACjB,CAeA"}
1
+ {"version":3,"file":"material-transport.d.ts","sourceRoot":"","sources":["../../src/ghost-core/material-transport.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,YAAY,GAAG,KAAK,CAAC;AAEvE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,KAAK,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC1C;AAOD,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,EAC9B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAyDlC;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,wBAAwB,EACjC,aAAa,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,OAAO,CAAC,4BAA4B,CAAC,CAwCvC;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,MAAM,EAAE,CAAC,CAWnB;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAOT;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,wBAAwB,GAChC;IACD,IAAI,EAAE,OAAO,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;CACjB,CAeA;AAsID,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAShE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAiChE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMhD"}
@@ -1,4 +1,4 @@
1
- import { readdir, readFile, stat } from "node:fs/promises";
1
+ import { readdir, readFile, realpath, stat } from "node:fs/promises";
2
2
  import { isAbsolute, join, relative, resolve } from "node:path";
3
3
  import { TextDecoder } from "node:util";
4
4
  import { hasGlobMagic, matchesGlob, normalizeGlobPath } from "./glob.js";
@@ -127,10 +127,29 @@ export function resolveLocalMaterialLocator(locator, options) {
127
127
  return { tier, pattern };
128
128
  }
129
129
  async function transportFile(locator, match, tier, options) {
130
- const base = { locator, tier, path: match.repoRelativePath };
130
+ const lexicalBase = { locator, tier, path: match.repoRelativePath };
131
+ let contained;
132
+ try {
133
+ contained = await resolveContainedRealFile(match.absolutePath, options.repoRoot);
134
+ }
135
+ catch {
136
+ return {
137
+ ...lexicalBase,
138
+ omitted: true,
139
+ reason: "matched file could not be read",
140
+ };
141
+ }
142
+ if (contained === null) {
143
+ return {
144
+ ...lexicalBase,
145
+ omitted: true,
146
+ reason: "resolved material path escapes repo",
147
+ };
148
+ }
149
+ const base = { locator, tier, path: contained.repoRelativePath };
131
150
  let s;
132
151
  try {
133
- s = await stat(match.absolutePath);
152
+ s = await stat(contained.realPath);
134
153
  }
135
154
  catch {
136
155
  return {
@@ -152,7 +171,7 @@ async function transportFile(locator, match, tier, options) {
152
171
  }
153
172
  let buffer;
154
173
  try {
155
- buffer = await readFile(match.absolutePath);
174
+ buffer = await readFile(contained.realPath);
156
175
  }
157
176
  catch {
158
177
  return {
@@ -161,7 +180,7 @@ async function transportFile(locator, match, tier, options) {
161
180
  reason: "matched file could not be read",
162
181
  };
163
182
  }
164
- if (isBinary(buffer)) {
183
+ if (isBinaryMaterial(buffer)) {
165
184
  return {
166
185
  ...base,
167
186
  omitted: true,
@@ -218,13 +237,66 @@ function toRepoRelative(path, repoRoot) {
218
237
  const rel = relative(repoRoot, path);
219
238
  return normalizeGlobPath(rel === "" ? "." : rel);
220
239
  }
240
+ export async function resolveContainedRealFile(absolutePath, repoRoot) {
241
+ const realRepoRoot = await realpath(repoRoot);
242
+ const realPath = await realpath(absolutePath);
243
+ if (!isInsideOrEqual(realPath, realRepoRoot))
244
+ return null;
245
+ return {
246
+ realPath,
247
+ repoRelativePath: toRepoRelative(realPath, realRepoRoot),
248
+ };
249
+ }
250
+ export function inferMaterialMime(path) {
251
+ const lower = path.toLowerCase();
252
+ let mime = "application/octet-stream";
253
+ if (lower.endsWith(".png"))
254
+ mime = "image/png";
255
+ else if (lower.endsWith(".jpg") || lower.endsWith(".jpeg"))
256
+ mime = "image/jpeg";
257
+ else if (lower.endsWith(".gif"))
258
+ mime = "image/gif";
259
+ else if (lower.endsWith(".webp"))
260
+ mime = "image/webp";
261
+ else if (lower.endsWith(".svg"))
262
+ mime = "image/svg+xml";
263
+ else if (lower.endsWith(".css"))
264
+ mime = "text/css";
265
+ else if (lower.endsWith(".html") || lower.endsWith(".htm"))
266
+ mime = "text/html";
267
+ else if (lower.endsWith(".json"))
268
+ mime = "application/json";
269
+ else if (lower.endsWith(".md") || lower.endsWith(".markdown"))
270
+ mime = "text/markdown";
271
+ else if (lower.endsWith(".txt"))
272
+ mime = "text/plain";
273
+ else if (lower.endsWith(".js") ||
274
+ lower.endsWith(".mjs") ||
275
+ lower.endsWith(".ts") ||
276
+ lower.endsWith(".tsx")) {
277
+ mime = "text/plain";
278
+ }
279
+ return {
280
+ mime,
281
+ contentKind: isTextMime(mime)
282
+ ? "text"
283
+ : mime.startsWith("image/")
284
+ ? "image"
285
+ : "binary",
286
+ };
287
+ }
288
+ export function isBinaryMaterial(buffer) {
289
+ return buffer.includes(0);
290
+ }
291
+ export function isTextMime(mime) {
292
+ return (mime.startsWith("text/") ||
293
+ mime === "application/json" ||
294
+ mime === "image/svg+xml");
295
+ }
221
296
  function isInsideOrEqual(child, parent) {
222
297
  const rel = relative(parent, child);
223
298
  return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
224
299
  }
225
- function isBinary(buffer) {
226
- return buffer.includes(0);
227
- }
228
300
  function formatBytes(bytes) {
229
301
  return bytes % 1024 === 0 ? `${bytes / 1024} KB` : `${bytes} bytes`;
230
302
  }
@@ -1 +1 @@
1
- {"version":3,"file":"material-transport.js","sourceRoot":"","sources":["../../src/ghost-core/material-transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"material-transport.js","sourceRoot":"","sources":["../../src/ghost-core/material-transport.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,6 @@
6
6
  export { lintGhostNode, type ParseNodeResult, parseNode } from "./parse.js";
7
7
  export { GhostNodeFrontmatterSchema, NodeIdSchema, NodeRefSchema, } from "./schema.js";
8
8
  export { serializeNode } from "./serialize.js";
9
- export { carriesConcreteMaterial, extractSkeletonFences, extractSkeletonSections, type FencedBlock, hasThreeLineFence, type SkeletonSection, stripSkeletonSections, } from "./steering.js";
9
+ export { carriesConcreteMaterial, extractSkeletonFences, extractSkeletonSections, type FencedBlock, hasSubstantialFencedExample, hasThreeLineFence, type SkeletonSection, stripSkeletonSections, } from "./steering.js";
10
10
  export { GHOST_NODE_SCHEMA, type GhostNodeDocument, type GhostNodeFrontmatter, type GhostNodeLintIssue, type GhostNodeLintReport, type GhostNodeLintSeverity, } from "./types.js";
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,WAAW,EAChB,iBAAiB,EACjB,KAAK,eAAe,EACpB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,WAAW,EAChB,2BAA2B,EAC3B,iBAAiB,EACjB,KAAK,eAAe,EACpB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,YAAY,CAAC"}
@@ -6,6 +6,6 @@
6
6
  export { lintGhostNode, parseNode } from "./parse.js";
7
7
  export { GhostNodeFrontmatterSchema, NodeIdSchema, NodeRefSchema, } from "./schema.js";
8
8
  export { serializeNode } from "./serialize.js";
9
- export { carriesConcreteMaterial, extractSkeletonFences, extractSkeletonSections, hasThreeLineFence, stripSkeletonSections, } from "./steering.js";
9
+ export { carriesConcreteMaterial, extractSkeletonFences, extractSkeletonSections, hasSubstantialFencedExample, hasThreeLineFence, stripSkeletonSections, } from "./steering.js";
10
10
  export { GHOST_NODE_SCHEMA, } from "./types.js";
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ghost-core/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAwB,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EAEvB,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,GAMlB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ghost-core/node/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAwB,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EAEvB,2BAA2B,EAC3B,iBAAiB,EAEjB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,GAMlB,MAAM,YAAY,CAAC"}
@@ -42,7 +42,7 @@ export const GhostNodeFrontmatterSchema = z
42
42
  .optional(),
43
43
  })
44
44
  // Passthrough, not strict: authors may add free-form descriptive keys
45
- // (e.g. `audience`, `stage`) that describe what the node is. Ghost does not
45
+ // (e.g. `audience`, `stage`) that describe what the node is. ghost does not
46
46
  // gate on them — they ride along as part of the node's descriptive surface.
47
47
  .passthrough();
48
48
  export { NodeIdSchema, NodeRefSchema };
@@ -11,6 +11,7 @@ export declare function carriesConcreteMaterial(input: {
11
11
  materials?: string[];
12
12
  body: string;
13
13
  }): boolean;
14
+ export declare function hasSubstantialFencedExample(body: string): boolean;
14
15
  export declare function hasThreeLineFence(body: string): boolean;
15
16
  export declare function extractSkeletonSections(body: string): SkeletonSection[];
16
17
  export declare function extractSkeletonFences(body: string): FencedBlock[];
@@ -1 +1 @@
1
- {"version":3,"file":"steering.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/steering.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAMV;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKvD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CASvE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAEjE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc1D"}
1
+ {"version":3,"file":"steering.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/steering.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAMV;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKvD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CASvE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAEjE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc1D"}
@@ -2,9 +2,12 @@ const FENCED_BLOCK_PATTERN = /(^|\n)(`{3,}|~{3,})[^\n]*\n([\s\S]*?)\n\2[ \t]*(?=
2
2
  const SKELETON_HEADING_PATTERN = /^##[ \t]+Skeleton[ \t]*$/gim;
3
3
  export function carriesConcreteMaterial(input) {
4
4
  return ((input.materials?.length ?? 0) > 0 ||
5
- hasThreeLineFence(input.body) ||
5
+ hasSubstantialFencedExample(input.body) ||
6
6
  extractSkeletonSections(input.body).length > 0);
7
7
  }
8
+ export function hasSubstantialFencedExample(body) {
9
+ return hasThreeLineFence(stripSkeletonSections(body));
10
+ }
8
11
  export function hasThreeLineFence(body) {
9
12
  for (const block of extractFencedBlocks(body)) {
10
13
  if (block.content.split(/\r?\n/).length >= 3)
@@ -1 +1 @@
1
- {"version":3,"file":"steering.js","sourceRoot":"","sources":["../../../src/ghost-core/node/steering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"steering.js","sourceRoot":"","sources":["../../../src/ghost-core/node/steering.ts"],"names":[],"mappings":"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"}
@@ -9,15 +9,14 @@ export interface GhostNodeFrontmatter {
9
9
  /** Free-form descriptive properties parsed from node frontmatter. */
10
10
  [key: string]: unknown;
11
11
  /**
12
- * One-line statement of what this node is and when to gather it — the
13
- * retrieval payload. Together with the node's id (its path) it is how an
14
- * agent selects a node, exactly like a tool's name + description. The body is
15
- * the node's "implementation"; the description is what makes it discoverable.
12
+ * Retrieval payload shown by gather: what the node governs, the observable
13
+ * condition under which it applies, and what it contributes where useful.
14
+ * Together with the node's id, it is how an agent decides applicability.
16
15
  * Optional, but strongly encouraged on any node worth anchoring a task at.
17
16
  */
18
17
  description?: string;
19
18
  /**
20
- * Optional locators for the concrete materials this truth is about: repo-relative
19
+ * Optional locators for the concrete materials this guidance is about: repo-relative
21
20
  * paths/globs and absolute https URLs. Guidance stays in prose; this list is
22
21
  * only where the agent or review harness can find the material.
23
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,eAAwB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,oBAAoB,CAAC;IAClC,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ghost-core/node/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,eAAwB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,oBAAoB,CAAC;IAClC,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1,19 +1,29 @@
1
1
  import { z } from "zod";
2
+ /** Schema emitted for newly initialized `.ghost/` packages. */
3
+ export declare const GHOST_PACKAGE_SCHEMA: "ghost.package/v1";
4
+ /** @deprecated Accepted for packages created before `ghost.package/v1`. */
2
5
  export declare const GHOST_FINGERPRINT_PACKAGE_SCHEMA: "ghost.fingerprint-package/v1";
3
- /** `manifest.yml` anchors a `.ghost/` package. */
4
- export declare const GhostFingerprintPackageManifestSchema: z.ZodObject<{
6
+ /** `manifest.yml` schema for a `.ghost/` package, including the legacy id. */
7
+ export declare const GhostPackageManifestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
8
+ id: z.ZodString;
9
+ cover: z.ZodOptional<z.ZodString>;
10
+ schema: z.ZodLiteral<"ghost.package/v1">;
11
+ }, z.core.$strict>, z.ZodObject<{
12
+ id: z.ZodString;
13
+ cover: z.ZodOptional<z.ZodString>;
5
14
  schema: z.ZodLiteral<"ghost.fingerprint-package/v1">;
15
+ }, z.core.$strict>], "schema">;
16
+ export type GhostPackageManifest = z.infer<typeof GhostPackageManifestSchema>;
17
+ /** @deprecated Use `GhostPackageManifestSchema`. */
18
+ export declare const GhostFingerprintPackageManifestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6
19
  id: z.ZodString;
7
20
  cover: z.ZodOptional<z.ZodString>;
8
- }, z.core.$strict>;
9
- export interface GhostFingerprintPackageManifest {
10
- schema: typeof GHOST_FINGERPRINT_PACKAGE_SCHEMA;
11
- id: string;
12
- /**
13
- * Optional id of the cover node: the one node gather inlines above the menu on
14
- * every invocation. Guaranteed presence for content selection cannot retrieve
15
- * essence, temperature, brand-level refusals.
16
- */
17
- cover?: string;
18
- }
21
+ schema: z.ZodLiteral<"ghost.package/v1">;
22
+ }, z.core.$strict>, z.ZodObject<{
23
+ id: z.ZodString;
24
+ cover: z.ZodOptional<z.ZodString>;
25
+ schema: z.ZodLiteral<"ghost.fingerprint-package/v1">;
26
+ }, z.core.$strict>], "schema">;
27
+ /** @deprecated Use `GhostPackageManifest`. */
28
+ export type GhostFingerprintPackageManifest = GhostPackageManifest;
19
29
  //# sourceMappingURL=package-manifest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-manifest.d.ts","sourceRoot":"","sources":["../../src/ghost-core/package-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gCAAgC,EAC3C,8BAAuC,CAAC;AAe1C,oDAAoD;AACpD,eAAO,MAAM,qCAAqC;;;;kBAWvC,CAAC;AAEZ,MAAM,WAAW,+BAA+B;IAC9C,MAAM,EAAE,OAAO,gCAAgC,CAAC;IAChD,EAAE,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"package-manifest.d.ts","sourceRoot":"","sources":["../../src/ghost-core/package-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,EAAG,kBAA2B,CAAC;AAEhE,2EAA2E;AAC3E,eAAO,MAAM,gCAAgC,EAC3C,8BAAuC,CAAC;AAyB1C,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B;;;;;;;;8BAUrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,oDAAoD;AACpD,eAAO,MAAM,qCAAqC;;;;;;;;8BAA6B,CAAC;AAEhF,8CAA8C;AAC9C,MAAM,MAAM,+BAA+B,GAAG,oBAAoB,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { z } from "zod";
2
+ /** Schema emitted for newly initialized `.ghost/` packages. */
3
+ export const GHOST_PACKAGE_SCHEMA = "ghost.package/v1";
4
+ /** @deprecated Accepted for packages created before `ghost.package/v1`. */
2
5
  export const GHOST_FINGERPRINT_PACKAGE_SCHEMA = "ghost.fingerprint-package/v1";
3
6
  const SlugIdSchema = z
4
7
  .string()
@@ -8,17 +11,27 @@ const NodeIdSchema = z
8
11
  .string()
9
12
  .min(1)
10
13
  .regex(/^[a-z0-9][a-z0-9./_-]*$/, "cover must be a node id");
11
- /** `manifest.yml` anchors a `.ghost/` package. */
12
- export const GhostFingerprintPackageManifestSchema = z
13
- .object({
14
- schema: z.literal(GHOST_FINGERPRINT_PACKAGE_SCHEMA),
14
+ const ManifestFields = {
15
15
  id: SlugIdSchema,
16
16
  /**
17
17
  * Optional id of the cover node: the one node gather inlines above the menu
18
18
  * on every invocation. Guaranteed presence for content selection cannot
19
- * retrieve essence, temperature, brand-level refusals.
19
+ * retrieve: essence, temperature, and brand-level refusals.
20
20
  */
21
21
  cover: NodeIdSchema.optional(),
22
- })
23
- .strict();
22
+ };
23
+ /** `manifest.yml` schema for a `.ghost/` package, including the legacy id. */
24
+ export const GhostPackageManifestSchema = z.discriminatedUnion("schema", [
25
+ z
26
+ .object({ schema: z.literal(GHOST_PACKAGE_SCHEMA), ...ManifestFields })
27
+ .strict(),
28
+ z
29
+ .object({
30
+ schema: z.literal(GHOST_FINGERPRINT_PACKAGE_SCHEMA),
31
+ ...ManifestFields,
32
+ })
33
+ .strict(),
34
+ ]);
35
+ /** @deprecated Use `GhostPackageManifestSchema`. */
36
+ export const GhostFingerprintPackageManifestSchema = GhostPackageManifestSchema;
24
37
  //# sourceMappingURL=package-manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-manifest.js","sourceRoot":"","sources":["../../src/ghost-core/package-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,gCAAgC,GAC3C,8BAAuC,CAAC;AAE1C,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,KAAK,CACJ,wBAAwB,EACxB,uDAAuD,CACxD,CAAC;AAEJ,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,KAAK,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;AAE/D,oDAAoD;AACpD,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC;KACnD,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC;IACnD,EAAE,EAAE,YAAY;IAChB;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE;CAC/B,CAAC;KACD,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"package-manifest.js","sourceRoot":"","sources":["../../src/ghost-core/package-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+DAA+D;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,kBAA2B,CAAC;AAEhE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,gCAAgC,GAC3C,8BAAuC,CAAC;AAE1C,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,KAAK,CACJ,wBAAwB,EACxB,uDAAuD,CACxD,CAAC;AAEJ,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,KAAK,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;AAE/D,MAAM,cAAc,GAAG;IACrB,EAAE,EAAE,YAAY;IAChB;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE;CAC/B,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACvE,CAAC;SACE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC;SACtE,MAAM,EAAE;IACX,CAAC;SACE,MAAM,CAAC;QACN,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC;QACnD,GAAG,cAAc;KAClB,CAAC;SACD,MAAM,EAAE;CACZ,CAAC,CAAC;AAIH,oDAAoD;AACpD,MAAM,CAAC,MAAM,qCAAqC,GAAG,0BAA0B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Generic loader for an agentskills.io-compatible skill bundle.
3
3
  *
4
- * Each tool in the Ghost monorepo (`ghost`, `ghost`, …) ships
4
+ * Each tool in the ghost monorepo (`ghost`, `ghost`, …) ships
5
5
  * its own skill bundle as real markdown under `src/skill-bundle/` and copies
6
6
  * it verbatim to `dist/skill-bundle/` at build time. This loader walks any
7
7
  * given root directory and returns a flat, deterministically ordered list of
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Generic loader for an agentskills.io-compatible skill bundle.
3
3
  *
4
- * Each tool in the Ghost monorepo (`ghost`, `ghost`, …) ships
4
+ * Each tool in the ghost monorepo (`ghost`, `ghost`, …) ships
5
5
  * its own skill bundle as real markdown under `src/skill-bundle/` and copies
6
6
  * it verbatim to `dist/skill-bundle/` at build time. This loader walks any
7
7
  * given root directory and returns a flat, deterministically ordered list of
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
+ /** @deprecated Use `ghostPackage` or `@design-intelligence/ghost/package`. */
1
2
  export * as fingerprint from "./fingerprint.js";
2
3
  export * as core from "./ghost-core/index.js";
3
- /** @deprecated Use `fingerprint` or `@design-intelligence/ghost/fingerprint`. */
4
+ export * as ghostPackage from "./package.js";
5
+ /** @deprecated Use `ghostPackage` or `@design-intelligence/ghost/package`. */
4
6
  export * as scan from "./scan/index.js";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,iFAAiF;AACjF,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,YAAY,MAAM,cAAc,CAAC;AAC7C,8EAA8E;AAC9E,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
+ /** @deprecated Use `ghostPackage` or `@design-intelligence/ghost/package`. */
1
2
  export * as fingerprint from "./fingerprint.js";
2
3
  export * as core from "./ghost-core/index.js";
3
- /** @deprecated Use `fingerprint` or `@design-intelligence/ghost/fingerprint`. */
4
+ export * as ghostPackage from "./package.js";
5
+ /** @deprecated Use `ghostPackage` or `@design-intelligence/ghost/package`. */
4
6
  export * as scan from "./scan/index.js";
5
7
  //# 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,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,iFAAiF;AACjF,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,YAAY,MAAM,cAAc,CAAC;AAC7C,8EAA8E;AAC9E,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC"}