faceted-prompting 0.4.0 → 0.6.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 (66) hide show
  1. package/README.md +45 -12
  2. package/dist/cli/compose-command.d.ts.map +1 -1
  3. package/dist/cli/compose-command.js +1 -0
  4. package/dist/cli/compose-command.js.map +1 -1
  5. package/dist/cli/compose-execution.d.ts +1 -0
  6. package/dist/cli/compose-execution.d.ts.map +1 -1
  7. package/dist/cli/compose-execution.js +2 -0
  8. package/dist/cli/compose-execution.js.map +1 -1
  9. package/dist/cli/facet-includes.d.ts +11 -0
  10. package/dist/cli/facet-includes.d.ts.map +1 -0
  11. package/dist/cli/facet-includes.js +136 -0
  12. package/dist/cli/facet-includes.js.map +1 -0
  13. package/dist/cli/install-skill/facet-partial-copy.d.ts +13 -0
  14. package/dist/cli/install-skill/facet-partial-copy.d.ts.map +1 -0
  15. package/dist/cli/install-skill/facet-partial-copy.js +66 -0
  16. package/dist/cli/install-skill/facet-partial-copy.js.map +1 -0
  17. package/dist/cli/install-skill/facet-token-renderer.d.ts +1 -1
  18. package/dist/cli/install-skill/facet-token-renderer.d.ts.map +1 -1
  19. package/dist/cli/install-skill/facet-token-renderer.js +2 -2
  20. package/dist/cli/install-skill/facet-token-renderer.js.map +1 -1
  21. package/dist/cli/install-skill/facets.d.ts +3 -0
  22. package/dist/cli/install-skill/facets.d.ts.map +1 -1
  23. package/dist/cli/install-skill/facets.js +36 -3
  24. package/dist/cli/install-skill/facets.js.map +1 -1
  25. package/dist/cli/install-skill/modes.d.ts.map +1 -1
  26. package/dist/cli/install-skill/modes.js +2 -1
  27. package/dist/cli/install-skill/modes.js.map +1 -1
  28. package/dist/cli/skill-commands.d.ts.map +1 -1
  29. package/dist/cli/skill-commands.js +1 -0
  30. package/dist/cli/skill-commands.js.map +1 -1
  31. package/dist/cli/skill-document-renderer.d.ts +6 -0
  32. package/dist/cli/skill-document-renderer.d.ts.map +1 -0
  33. package/dist/cli/skill-document-renderer.js +73 -0
  34. package/dist/cli/skill-document-renderer.js.map +1 -0
  35. package/dist/cli/skill-renderer.d.ts +5 -3
  36. package/dist/cli/skill-renderer.d.ts.map +1 -1
  37. package/dist/cli/skill-renderer.js +137 -79
  38. package/dist/cli/skill-renderer.js.map +1 -1
  39. package/dist/cli/skill-types.d.ts +7 -1
  40. package/dist/cli/skill-types.d.ts.map +1 -1
  41. package/dist/compose-definition.d.ts.map +1 -1
  42. package/dist/compose-definition.js +4 -1
  43. package/dist/compose-definition.js.map +1 -1
  44. package/dist/compose.d.ts +3 -2
  45. package/dist/compose.d.ts.map +1 -1
  46. package/dist/compose.js +30 -33
  47. package/dist/compose.js.map +1 -1
  48. package/dist/facet-partial-paths.d.ts +7 -0
  49. package/dist/facet-partial-paths.d.ts.map +1 -0
  50. package/dist/facet-partial-paths.js +29 -0
  51. package/dist/facet-partial-paths.js.map +1 -0
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js.map +1 -1
  55. package/dist/init/index.d.ts.map +1 -1
  56. package/dist/init/index.js +9 -1
  57. package/dist/init/index.js.map +1 -1
  58. package/dist/prompt-payload.d.ts +1 -0
  59. package/dist/prompt-payload.d.ts.map +1 -1
  60. package/dist/prompt-payload.js +34 -8
  61. package/dist/prompt-payload.js.map +1 -1
  62. package/dist/types.d.ts +10 -4
  63. package/dist/types.d.ts.map +1 -1
  64. package/dist/types.js +7 -2
  65. package/dist/types.js.map +1 -1
  66. package/package.json +3 -3
@@ -8,8 +8,12 @@ export interface SkillSection {
8
8
  readonly ref: string;
9
9
  readonly body: string;
10
10
  readonly path: string;
11
+ readonly sourcePaths?: readonly string[];
11
12
  }
12
- export type InstructionSection = SkillSection | {
13
+ export interface FileInstructionSection extends SkillSection {
14
+ readonly sourcePaths: readonly string[];
15
+ }
16
+ export type InstructionSection = FileInstructionSection | {
13
17
  readonly ref: 'literal';
14
18
  readonly body: string;
15
19
  };
@@ -20,11 +24,13 @@ export interface SkillDocumentInput {
20
24
  readonly policies: readonly SkillSection[];
21
25
  readonly knowledge: readonly SkillSection[];
22
26
  readonly instructions: readonly InstructionSection[];
27
+ readonly outputContracts: readonly SkillSection[];
23
28
  }
24
29
  export interface ResolvedDefinitionSections {
25
30
  readonly persona: SkillSection;
26
31
  readonly policies: readonly SkillSection[];
27
32
  readonly knowledge: readonly SkillSection[];
28
33
  readonly instructions: readonly InstructionSection[];
34
+ readonly outputContracts: readonly SkillSection[];
29
35
  }
30
36
  //# sourceMappingURL=skill-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-types.d.ts","sourceRoot":"","sources":["../../src/cli/skill-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnG,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACtD"}
1
+ {"version":3,"file":"skill-types.d.ts","sourceRoot":"","sources":["../../src/cli/skill-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;IAC1D,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,MAAM,kBAAkB,GAAG,sBAAsB,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7G,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACrD,QAAQ,CAAC,eAAe,EAAE,SAAS,YAAY,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACrD,QAAQ,CAAC,eAAe,EAAE,SAAS,YAAY,EAAE,CAAC;CACnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"compose-definition.d.ts","sourceRoot":"","sources":["../src/compose-definition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,YAAY,CAAC;AAsFvE,wBAAsB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyB9F"}
1
+ {"version":3,"file":"compose-definition.d.ts","sourceRoot":"","sources":["../src/compose-definition.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,YAAY,CAAC;AAuFvE,wBAAsB,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2B9F"}
@@ -8,9 +8,10 @@ const ALLOWED_COMPOSE_KEYS = new Set([
8
8
  'knowledge',
9
9
  'policies',
10
10
  'instructions',
11
+ 'output-contracts',
11
12
  'order',
12
13
  ]);
13
- const ORDER_VALUES = new Set(['persona', 'knowledge', 'policies', 'instructions']);
14
+ const ORDER_VALUES = new Set(['persona', 'knowledge', 'policies', 'instructions', 'output-contracts']);
14
15
  function normalizeOrder(rawOrder) {
15
16
  if (!rawOrder)
16
17
  return undefined;
@@ -89,6 +90,7 @@ export async function loadComposeDefinition(definitionPath) {
89
90
  const instructions = normalizeInstructions(parsed);
90
91
  const knowledge = ensureStringList(parsed.knowledge, 'knowledge');
91
92
  const policies = ensureStringList(parsed.policies, 'policies');
93
+ const outputContracts = ensureStringList(parsed['output-contracts'], 'output-contracts');
92
94
  const rawOrder = ensureStringList(parsed.order, 'order');
93
95
  const order = normalizeOrder(rawOrder);
94
96
  return {
@@ -99,6 +101,7 @@ export async function loadComposeDefinition(definitionPath) {
99
101
  knowledge: knowledge && knowledge.length > 0 ? knowledge : undefined,
100
102
  policies: policies && policies.length > 0 ? policies : undefined,
101
103
  instructions: instructions && instructions.length > 0 ? instructions : undefined,
104
+ outputContracts: outputContracts && outputContracts.length > 0 ? outputContracts : undefined,
102
105
  order,
103
106
  };
104
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compose-definition.js","sourceRoot":"","sources":["../src/compose-definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAG7B,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,MAAM;IACN,aAAa;IACb,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,cAAc;IACd,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;AAEnF,SAAS,cAAc,CAAC,QAA8B;IACpD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,UAAU,GAAwB,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,UAAU,GAAG,KAA0B,CAAC;QAC9C,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAS;QACnC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,KAAa;IACrD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,sBAAsB,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,4BAA4B,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,KAAa;IACzD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,0BAA0B,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc,EAAE,KAAa;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAe;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAyB;IACnD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA+B;IAC5D,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,cAAsB;IAChE,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEnD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEvC,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,kBAAkB,CAAC,WAAW,CAAC;QAC5C,OAAO;QACP,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;QACtC,SAAS,EAAE,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACpE,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAChE,YAAY,EAAE,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAChF,KAAK;KACN,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"compose-definition.js","sourceRoot":"","sources":["../src/compose-definition.ts"],"names":[],"mappings":"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"}
package/dist/compose.d.ts CHANGED
@@ -2,7 +2,8 @@
2
2
  * Facet composition — the core placement rule.
3
3
  *
4
4
  * system prompt: persona only (WHO)
5
- * user message: knowledge + instructions + policies (WHAT TO KNOW / WHAT TO DO / HOW)
5
+ * user message: knowledge + instructions + output-contracts + policies
6
+ * (WHAT TO KNOW / WHAT TO DO / HOW TO ANSWER / HOW)
6
7
  *
7
8
  * This module has ZERO dependencies on TAKT internals.
8
9
  */
@@ -12,7 +13,7 @@ import type { FacetSet, ComposedPrompt, ComposeOptions } from './types.js';
12
13
  * placement rules.
13
14
  *
14
15
  * - persona → systemPrompt
15
- * - knowledge / instructions / policies → userMessage (in that order)
16
+ * - knowledge / instructions / output-contracts / policies → userMessage
16
17
  *
17
18
  * Policies are placed last so they serve as the most recent constraint
18
19
  * the model sees before generating output.
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG3E;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,GAAG,cAAc,CA2CjF"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAqB,MAAM,YAAY,CAAC;AAiC9F;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,GAAG,cAAc,CASjF"}
package/dist/compose.js CHANGED
@@ -2,54 +2,51 @@
2
2
  * Facet composition — the core placement rule.
3
3
  *
4
4
  * system prompt: persona only (WHO)
5
- * user message: knowledge + instructions + policies (WHAT TO KNOW / WHAT TO DO / HOW)
5
+ * user message: knowledge + instructions + output-contracts + policies
6
+ * (WHAT TO KNOW / WHAT TO DO / HOW TO ANSWER / HOW)
6
7
  *
7
8
  * This module has ZERO dependencies on TAKT internals.
8
9
  */
10
+ import { DEFAULT_USER_MESSAGE_ORDER } from './types.js';
9
11
  import { prepareKnowledgeContent, preparePolicyContent } from './truncation.js';
12
+ function renderOrderedUserPart(entry, facets, contextMaxChars) {
13
+ if (entry === 'policies') {
14
+ if (!facets.policies || facets.policies.length === 0)
15
+ return [];
16
+ const joined = facets.policies.map(p => p.body).join('\n\n---\n\n');
17
+ const sourcePath = facets.policies.length === 1
18
+ ? facets.policies[0].sourcePath
19
+ : undefined;
20
+ return [preparePolicyContent(joined, contextMaxChars, sourcePath)];
21
+ }
22
+ if (entry === 'knowledge') {
23
+ if (!facets.knowledge || facets.knowledge.length === 0)
24
+ return [];
25
+ const joined = facets.knowledge.map(k => k.body).join('\n\n---\n\n');
26
+ const sourcePath = facets.knowledge.length === 1
27
+ ? facets.knowledge[0].sourcePath
28
+ : undefined;
29
+ return [prepareKnowledgeContent(joined, contextMaxChars, sourcePath)];
30
+ }
31
+ if (entry === 'instructions') {
32
+ return facets.instructions?.map(instruction => instruction.body) ?? [];
33
+ }
34
+ return facets.outputContracts?.map(outputContract => outputContract.body) ?? [];
35
+ }
10
36
  /**
11
37
  * Compose facets into an LLM-ready prompt according to Faceted Prompting
12
38
  * placement rules.
13
39
  *
14
40
  * - persona → systemPrompt
15
- * - knowledge / instructions / policies → userMessage (in that order)
41
+ * - knowledge / instructions / output-contracts / policies → userMessage
16
42
  *
17
43
  * Policies are placed last so they serve as the most recent constraint
18
44
  * the model sees before generating output.
19
45
  */
20
46
  export function compose(facets, options) {
21
47
  const systemPrompt = facets.persona?.body ?? '';
22
- const userParts = [];
23
- const order = options.userMessageOrder ?? ['knowledge', 'instructions', 'policies'];
24
- for (const entry of order) {
25
- if (entry === 'policies') {
26
- if (!facets.policies || facets.policies.length === 0)
27
- continue;
28
- const joined = facets.policies.map(p => p.body).join('\n\n---\n\n');
29
- const sourcePath = facets.policies.length === 1
30
- ? facets.policies[0].sourcePath
31
- : undefined;
32
- userParts.push(preparePolicyContent(joined, options.contextMaxChars, sourcePath));
33
- continue;
34
- }
35
- if (entry === 'knowledge') {
36
- if (!facets.knowledge || facets.knowledge.length === 0)
37
- continue;
38
- const joined = facets.knowledge.map(k => k.body).join('\n\n---\n\n');
39
- const sourcePath = facets.knowledge.length === 1
40
- ? facets.knowledge[0].sourcePath
41
- : undefined;
42
- userParts.push(prepareKnowledgeContent(joined, options.contextMaxChars, sourcePath));
43
- continue;
44
- }
45
- if (entry === 'instructions') {
46
- if (!facets.instructions || facets.instructions.length === 0)
47
- continue;
48
- for (const instruction of facets.instructions) {
49
- userParts.push(instruction.body);
50
- }
51
- }
52
- }
48
+ const order = options.userMessageOrder ?? DEFAULT_USER_MESSAGE_ORDER;
49
+ const userParts = order.flatMap(entry => renderOrderedUserPart(entry, facets, options.contextMaxChars));
53
50
  return {
54
51
  systemPrompt,
55
52
  userMessage: userParts.join('\n\n'),
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEhF;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,MAAgB,EAAE,OAAuB;IAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IAEhD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IAEpF,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAC7C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,UAAU;gBAChC,CAAC,CAAC,SAAS,CAAC;YACd,SAAS,CAAC,IAAI,CACZ,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,CAClE,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACjE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAC9C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,UAAU;gBACjC,CAAC,CAAC,SAAS,CAAC;YACd,SAAS,CAAC,IAAI,CACZ,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,CACrE,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACvE,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC9C,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,YAAY;QACZ,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,SAAS,qBAAqB,CAC5B,KAAwB,EACxB,MAAgB,EAChB,eAAuB;IAEvB,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC7C,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,UAAU;YAChC,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YAC9C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,UAAU;YACjC,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACzE,CAAC;IAED,OAAO,MAAM,CAAC,eAAe,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,MAAgB,EAAE,OAAuB;IAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;IACrE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAExG,OAAO;QACL,YAAY;QACZ,WAAW,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;KACpC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const FACET_PARTIAL_KINDS: readonly ["instructions", "policies", "knowledge", "output-contracts"];
2
+ export type FacetPartialKind = (typeof FACET_PARTIAL_KINDS)[number];
3
+ export declare function isFacetPartialKind(kind: string): kind is FacetPartialKind;
4
+ export declare function facetPartialsFacetDir(kind: FacetPartialKind): string;
5
+ export declare function facetPartialsDir(facetsRoot: string, kind: FacetPartialKind): string;
6
+ export declare function facetPartialKindFromPath(path: string): FacetPartialKind | undefined;
7
+ //# sourceMappingURL=facet-partial-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facet-partial-paths.d.ts","sourceRoot":"","sources":["../src/facet-partial-paths.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,wEAK8B,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,gBAAgB,CAEzE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAEpE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAEnF;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAYnF"}
@@ -0,0 +1,29 @@
1
+ import { join } from 'node:path';
2
+ export const FACET_PARTIAL_KINDS = [
3
+ 'instructions',
4
+ 'policies',
5
+ 'knowledge',
6
+ 'output-contracts',
7
+ ];
8
+ export function isFacetPartialKind(kind) {
9
+ return FACET_PARTIAL_KINDS.some(facetPartialKind => facetPartialKind === kind);
10
+ }
11
+ export function facetPartialsFacetDir(kind) {
12
+ return `partials/${kind}`;
13
+ }
14
+ export function facetPartialsDir(facetsRoot, kind) {
15
+ return join(facetsRoot, facetPartialsFacetDir(kind));
16
+ }
17
+ export function facetPartialKindFromPath(path) {
18
+ const segments = path.split(/[\\/]+/u);
19
+ const partialsIndex = segments.lastIndexOf('partials');
20
+ if (partialsIndex < 0) {
21
+ return undefined;
22
+ }
23
+ const kind = segments[partialsIndex + 1];
24
+ if (!kind || !isFacetPartialKind(kind)) {
25
+ return undefined;
26
+ }
27
+ return kind;
28
+ }
29
+ //# sourceMappingURL=facet-partial-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facet-partial-paths.js","sourceRoot":"","sources":["../src/facet-partial-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,cAAc;IACd,UAAU;IACV,WAAW;IACX,kBAAkB;CAC0C,CAAC;AAI/D,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAsB;IAC1D,OAAO,YAAY,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAkB,EAAE,IAAsB;IACzE,OAAO,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACvD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * Re-exports all public types, interfaces, and functions.
5
5
  * Consumers should import from this module only.
6
6
  */
7
- export type { FacetKind, FacetContent, FacetSet, ComposedPrompt, ComposedPromptPayload, ComposeOptions, CopyFiles, } from './types.js';
7
+ export type { FacetKind, FacetContent, FacetSet, ComposedPrompt, ComposedPromptPayload, ComposeDefinition, ComposeOptions, ComposeOrderEntry, CopyFiles, } from './types.js';
8
8
  export { compose } from './compose.js';
9
9
  export { composePromptPayload } from './prompt-payload.js';
10
10
  export type { DataEngine } from './data-engine.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvE,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvE,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAI3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,aAAa;AACb,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIlD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,GACf,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAI3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,aAAa;AACb,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,SAAS;AACT,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAIlD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,GACf,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"AAyJA,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAuB/D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAMnE;AA4CD,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhH;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9H"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"AAiKA,KAAK,iBAAiB,GAAG;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAuB/D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAMnE;AA4CD,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpF;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhH;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9H"}
@@ -1,7 +1,15 @@
1
1
  import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
2
2
  import { dirname, join } from 'node:path';
3
3
  import { ensureConfigFile, getFacetedRoot } from '../config/index.js';
4
- const REQUIRED_FACET_DIRS = ['persona', 'knowledge', 'policies', 'instructions', 'output-contracts'];
4
+ import { FACET_PARTIAL_KINDS, facetPartialsFacetDir } from '../facet-partial-paths.js';
5
+ const REQUIRED_FACET_DIRS = [
6
+ 'persona',
7
+ 'knowledge',
8
+ 'policies',
9
+ 'instructions',
10
+ ...FACET_PARTIAL_KINDS.map(facetPartialsFacetDir),
11
+ 'output-contracts',
12
+ ];
5
13
  const TAKT_BOOTSTRAP_BASE_URL = 'https://raw.githubusercontent.com/nrslib/takt/main/builtins/ja/facets';
6
14
  function makeComposition(name, description, knowledge) {
7
15
  const lines = [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare function composePromptPayload(params: {
4
4
  definitionDir: string;
5
5
  facetsRoot?: string;
6
6
  facetsRoots?: readonly string[];
7
+ facetedRoots?: readonly string[];
7
8
  composeOptions: ComposeOptions;
8
9
  }): ComposedPromptPayload;
9
10
  //# sourceMappingURL=prompt-payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-payload.d.ts","sourceRoot":"","sources":["../src/prompt-payload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AAqBtG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,UAAU,EAAE,iBAAiB,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,qBAAqB,CAYxB"}
1
+ {"version":3,"file":"prompt-payload.d.ts","sourceRoot":"","sources":["../src/prompt-payload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAa,MAAM,YAAY,CAAC;AAiDtG,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,UAAU,EAAE,iBAAiB,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;CAChC,GAAG,qBAAqB,CAaxB"}
@@ -1,18 +1,44 @@
1
1
  import { compose } from './compose.js';
2
- import { buildFacetSet, resolveDefinitionSections } from './cli/skill-renderer.js';
3
- function buildCopyFiles(params) {
4
- const resolved = resolveDefinitionSections(params);
2
+ import { buildFacetSetFromResolvedSections, resolveDefinitionSections } from './cli/skill-renderer.js';
3
+ import { facetPartialKindFromPath } from './facet-partial-paths.js';
4
+ function instructionFacetPath(instruction) {
5
+ if ('path' in instruction) {
6
+ return instruction.path;
7
+ }
8
+ return undefined;
9
+ }
10
+ function partialSourcePaths(section) {
11
+ if (!('path' in section) || !section.sourcePaths) {
12
+ return [];
13
+ }
14
+ return section.sourcePaths.filter(path => path !== section.path);
15
+ }
16
+ function dedupePaths(paths) {
17
+ return paths.reduce((deduped, path) => deduped.includes(path) ? deduped : [...deduped, path], []);
18
+ }
19
+ function buildCopyFiles(resolved) {
20
+ const facetPartials = dedupePaths([
21
+ ...resolved.knowledge.flatMap(section => partialSourcePaths(section)),
22
+ ...resolved.policies.flatMap(section => partialSourcePaths(section)),
23
+ ...resolved.instructions.flatMap(section => partialSourcePaths(section)),
24
+ ...resolved.outputContracts.flatMap(section => partialSourcePaths(section)),
25
+ ]);
26
+ const instructionPartials = facetPartials.filter(path => facetPartialKindFromPath(path) === 'instructions');
5
27
  return {
6
28
  persona: [resolved.persona.path],
7
29
  knowledge: resolved.knowledge.map(section => section.path),
8
30
  policies: resolved.policies.map(section => section.path),
9
- instructions: resolved.instructions
10
- .filter((instruction) => 'path' in instruction)
11
- .map(instruction => instruction.path),
31
+ instructions: dedupePaths(resolved.instructions
32
+ .map(instruction => instructionFacetPath(instruction))
33
+ .filter(path => path !== undefined)),
34
+ outputContracts: resolved.outputContracts.map(section => section.path),
35
+ ...(facetPartials.length > 0 ? { facetPartials } : {}),
36
+ ...(instructionPartials.length > 0 ? { instructionPartials } : {}),
12
37
  };
13
38
  }
14
39
  export function composePromptPayload(params) {
15
- const facetSet = buildFacetSet(params);
40
+ const resolved = resolveDefinitionSections(params);
41
+ const facetSet = buildFacetSetFromResolvedSections(resolved);
16
42
  const composed = compose(facetSet, {
17
43
  ...params.composeOptions,
18
44
  userMessageOrder: params.definition.order,
@@ -20,7 +46,7 @@ export function composePromptPayload(params) {
20
46
  return {
21
47
  systemPrompt: composed.systemPrompt,
22
48
  userPrompt: composed.userMessage,
23
- copyFiles: buildCopyFiles(params),
49
+ copyFiles: buildCopyFiles(resolved),
24
50
  };
25
51
  }
26
52
  //# sourceMappingURL=prompt-payload.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-payload.js","sourceRoot":"","sources":["../src/prompt-payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,SAAS,cAAc,CAAC,MAKvB;IACC,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAEnD,OAAO;QACL,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;QAChC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1D,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACxD,YAAY,EAAE,QAAQ,CAAC,YAAY;aAChC,MAAM,CAAC,CAAC,WAAW,EAA8D,EAAE,CAAC,MAAM,IAAI,WAAW,CAAC;aAC1G,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;KACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAMpC;IACC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE;QACjC,GAAG,MAAM,CAAC,cAAc;QACxB,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK;KAC1C,CAAC,CAAC;IAEH,OAAO;QACL,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,UAAU,EAAE,QAAQ,CAAC,WAAW;QAChC,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC;KAClC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"prompt-payload.js","sourceRoot":"","sources":["../src/prompt-payload.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Core type definitions for Faceted Prompting.
3
3
  *
4
4
  * Defines the vocabulary of facets (persona, policy, knowledge, instruction,
5
- * output-contract) and the structures used by compose() and DataEngine.
5
+ * output-contracts) and the structures used by compose() and DataEngine.
6
6
  *
7
7
  * This module has ZERO dependencies on TAKT internals.
8
8
  */
@@ -25,12 +25,13 @@ export interface FacetSet {
25
25
  readonly policies?: readonly FacetContent[];
26
26
  readonly knowledge?: readonly FacetContent[];
27
27
  readonly instructions?: readonly FacetContent[];
28
+ readonly outputContracts?: readonly FacetContent[];
28
29
  }
29
30
  /**
30
31
  * The output of compose(): facet content assigned to LLM message slots.
31
32
  *
32
33
  * persona → systemPrompt
33
- * policy + knowledge + instruction → userMessage
34
+ * knowledge + instructions + output-contracts + policies → userMessage
34
35
  */
35
36
  export interface ComposedPrompt {
36
37
  readonly systemPrompt: string;
@@ -41,6 +42,9 @@ export interface CopyFiles {
41
42
  readonly knowledge: readonly string[];
42
43
  readonly policies: readonly string[];
43
44
  readonly instructions: readonly string[];
45
+ readonly outputContracts: readonly string[];
46
+ readonly facetPartials?: readonly string[];
47
+ readonly instructionPartials?: readonly string[];
44
48
  }
45
49
  export interface ComposedPromptPayload {
46
50
  readonly systemPrompt: string;
@@ -48,7 +52,8 @@ export interface ComposedPromptPayload {
48
52
  readonly copyFiles: CopyFiles;
49
53
  }
50
54
  /** User-message sections that can be ordered in compose definitions. */
51
- export type ComposeOrderEntry = 'policies' | 'knowledge' | 'instructions';
55
+ export type ComposeOrderEntry = 'policies' | 'knowledge' | 'instructions' | 'output-contracts';
56
+ export declare const DEFAULT_USER_MESSAGE_ORDER: readonly ComposeOrderEntry[];
52
57
  /** CLI compose definition loaded from YAML. */
53
58
  export interface ComposeDefinition {
54
59
  readonly name: string;
@@ -58,13 +63,14 @@ export interface ComposeDefinition {
58
63
  readonly knowledge?: readonly string[];
59
64
  readonly policies?: readonly string[];
60
65
  readonly instructions?: readonly string[];
66
+ readonly outputContracts?: readonly string[];
61
67
  readonly order?: readonly ComposeOrderEntry[];
62
68
  }
63
69
  /** Options controlling compose() behaviour. */
64
70
  export interface ComposeOptions {
65
71
  /** Maximum character length for knowledge/policy content before truncation. */
66
72
  readonly contextMaxChars: number;
67
- /** Optional user-message section order for policies/knowledge/instruction. */
73
+ /** Optional user-message section order for knowledge/instructions/output-contracts/policies. */
68
74
  readonly userMessageOrder?: readonly ComposeOrderEntry[];
69
75
  }
70
76
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,uDAAuD;AACvD,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,WAAW,GACX,cAAc,GACd,kBAAkB,CAAC;AAEvB,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CACjD;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED,wEAAwE;AACxE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAAC;AAE1E,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC/C;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC1D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,uDAAuD;AACvD,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,UAAU,GACV,WAAW,GACX,cAAc,GACd,kBAAkB,CAAC;AAEvB,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;CACpD;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CAC/B;AAED,wEAAwE;AACxE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAE/F,eAAO,MAAM,0BAA0B,EAAE,SAAS,iBAAiB,EAKlE,CAAC;AAEF,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC/C;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,gGAAgG;IAChG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC1D"}
package/dist/types.js CHANGED
@@ -2,9 +2,14 @@
2
2
  * Core type definitions for Faceted Prompting.
3
3
  *
4
4
  * Defines the vocabulary of facets (persona, policy, knowledge, instruction,
5
- * output-contract) and the structures used by compose() and DataEngine.
5
+ * output-contracts) and the structures used by compose() and DataEngine.
6
6
  *
7
7
  * This module has ZERO dependencies on TAKT internals.
8
8
  */
9
- export {};
9
+ export const DEFAULT_USER_MESSAGE_ORDER = [
10
+ 'knowledge',
11
+ 'instructions',
12
+ 'output-contracts',
13
+ 'policies',
14
+ ];
10
15
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA6DH,MAAM,CAAC,MAAM,0BAA0B,GAAiC;IACtE,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,UAAU;CACX,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "faceted-prompting",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "Faceted Prompting — structured prompt composition for LLMs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -50,11 +50,11 @@
50
50
  "eslint": "^9.0.0",
51
51
  "typescript": "^5.9.3",
52
52
  "typescript-eslint": "^8.57.0",
53
- "vitest": "^3.2.4"
53
+ "vitest": "^4.1.9"
54
54
  },
55
55
  "dependencies": {
56
56
  "traced-config": "^0.1.0",
57
57
  "update-notifier": "^7.3.1",
58
- "yaml": "^2.8.1"
58
+ "yaml": "^2.9.0"
59
59
  }
60
60
  }