@cat-factory/prompt-fragments 0.13.48 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -29,6 +29,47 @@ hint (`blockTypes` / `agentKinds`).
29
29
  suppressed by higher tiers. See
30
30
  [ADR 0006](../../docs/adr/0006-prompt-fragment-library.md).
31
31
 
32
+ ## Programmatic deployment seams (custom fragments + per-task-type defaults)
33
+
34
+ Two **module-global** registration seams let a deployment (local **or** hosted) extend
35
+ the fragment behaviour at startup — an import side effect from the deployment entry, run
36
+ **once before** `start()` / `startLocal()`, mirroring `registerAgentKind`. No fork, no
37
+ rebuild, no per-workspace UI.
38
+
39
+ - **Add custom fragments to the universal pool** — `registerPromptFragment(fragment)` /
40
+ `registerPromptFragments(fragments)`. Every `GET /prompt-fragments` catalog read and
41
+ every run-time body lookup then sees them; re-registering an id overrides the built-in
42
+ of that id. (`universalFragments()` is the merged built-in ∪ registered pool.)
43
+ - **Mark fragments as the default for a task type** —
44
+ `registerTaskTypeDefaultFragments(taskType, fragmentIds)`. Every **new** task of that
45
+ type (`document`, `review`, `feature`, …) is then seeded with those fragments onto its
46
+ own `fragmentIds` at creation (unioned with the built-in defaults and whatever it
47
+ inherits from its service). The board resolves a new task's seed set through
48
+ `defaultFragmentIdsForTaskType(taskType)`; the only built-in per-type default is the
49
+ document writing-style set (`DEFAULT_DOCUMENT_STYLE_FRAGMENT_IDS`), which registered
50
+ ids augment rather than replace. Seeding is server-side and authoritative — it applies
51
+ even for tasks created via the public API with no create-form picker.
52
+
53
+ ```ts
54
+ // deployment entry, before start()/startLocal()
55
+ import {
56
+ registerPromptFragments,
57
+ registerTaskTypeDefaultFragments,
58
+ } from '@cat-factory/prompt-fragments'
59
+
60
+ registerPromptFragments([
61
+ {
62
+ id: 'org.review-checklist',
63
+ version: '1.0.0',
64
+ title: 'Review checklist',
65
+ summary: 'Our PR review bar.',
66
+ body: '- Check error handling…',
67
+ },
68
+ ])
69
+ // every new REVIEW task starts with this guidance
70
+ registerTaskTypeDefaultFragments('review', ['org.review-checklist'])
71
+ ```
72
+
32
73
  ## Adding a collection
33
74
 
34
75
  1. Create `src/collections/<topic>.ts` and export an array of `PromptFragment`.
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { PromptFragment } from '@cat-factory/contracts';
2
2
  export type { PromptFragment } from '@cat-factory/contracts';
3
3
  export declare const FRAGMENTS: PromptFragment[];
4
4
  export { styleFragments, DEFAULT_DOCUMENT_STYLE_FRAGMENT_IDS } from './collections/style.js';
5
+ export { registerTaskTypeDefaultFragments, clearRegisteredTaskTypeDefaultFragments, defaultFragmentIdsForTaskType, } from './task-type-defaults.js';
5
6
  export { MIGRATION_FRAGMENT_IDS, migrationFragmentIdsFor } from './collections/migration.js';
6
7
  /** Fragments keyed by id for O(1) lookup during prompt composition. */
7
8
  export declare const FRAGMENTS_BY_ID: ReadonlyMap<string, PromptFragment>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAiB5D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,eAAO,MAAM,SAAS,EAAE,cAAc,EAOrC,CAAA;AAKD,OAAO,EAAE,cAAc,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAA;AAK5F,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE5F,uEAAuE;AACvE,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAE/D,CAAA;AAYD,mGAAmG;AACnG,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAErE;AAED,wDAAwD;AACxD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,CAEjF;AAED,oFAAoF;AACpF,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAMrD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAElE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAiB5D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,eAAO,MAAM,SAAS,EAAE,cAAc,EAOrC,CAAA;AAKD,OAAO,EAAE,cAAc,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAA;AAI5F,OAAO,EACL,gCAAgC,EAChC,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,yBAAyB,CAAA;AAKhC,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE5F,uEAAuE;AACvE,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAE/D,CAAA;AAYD,mGAAmG;AACnG,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAErE;AAED,wDAAwD;AACxD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,CAEjF;AAED,oFAAoF;AACpF,wBAAgB,8BAA8B,IAAI,IAAI,CAErD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAMrD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAElE"}
package/dist/index.js CHANGED
@@ -16,6 +16,10 @@ export const FRAGMENTS = [
16
16
  // board service seeding a new document task's fragments, the docs-refresh preset building its
17
17
  // `styleFragments` form options) draws on the same source of truth the catalog is built from.
18
18
  export { styleFragments, DEFAULT_DOCUMENT_STYLE_FRAGMENT_IDS } from './collections/style.js';
19
+ // The per-task-type default-fragments seam: a deployment registers the fragments every new task
20
+ // of a given type (documentation/review/…) starts with; the board service resolves a new task's
21
+ // seed set through `defaultFragmentIdsForTaskType`.
22
+ export { registerTaskTypeDefaultFragments, clearRegisteredTaskTypeDefaultFragments, defaultFragmentIdsForTaskType, } from './task-type-defaults.js';
19
23
  // Re-export the migration fragment ids so the `preset_tech_migration` preset draws its default
20
24
  // fragment set from the same source of truth the catalog is built from: `MIGRATION_FRAGMENT_IDS`
21
25
  // (T8's descriptor `defaultFragmentIds`) + `migrationFragmentIdsFor` (T7's `seedMigrationPlan`,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAavD,MAAM,CAAC,MAAM,SAAS,GAAqB;IACzC,GAAG,aAAa;IAChB,GAAG,cAAc;IACjB,GAAG,mBAAmB;IACtB,GAAG,eAAe;IAClB,GAAG,cAAc;IACjB,GAAG,kBAAkB;CACtB,CAAA;AAED,+FAA+F;AAC/F,8FAA8F;AAC9F,8FAA8F;AAC9F,OAAO,EAAE,cAAc,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAA;AAC5F,+FAA+F;AAC/F,iGAAiG;AACjG,gGAAgG;AAChG,qFAAqF;AACrF,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE5F,uEAAuE;AACvE,MAAM,CAAC,MAAM,eAAe,GAAwC,IAAI,GAAG,CACzE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CACrD,CAAA;AAED,oFAAoF;AACpF,uFAAuF;AACvF,sFAAsF;AACtF,sFAAsF;AACtF,wFAAwF;AACxF,iFAAiF;AACjF,wFAAwF;AACxF,oCAAoC;AACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAA;AAEpD,mGAAmG;AACnG,MAAM,UAAU,sBAAsB,CAAC,QAAwB;IAC7D,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;AACvC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,uBAAuB,CAAC,SAAmC;IACzE,KAAK,MAAM,QAAQ,IAAI,SAAS;QAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAA;AACpE,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,8BAA8B;IAC5C,UAAU,CAAC,KAAK,EAAE,CAAA;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS;QAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IACjE,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC3E,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACtD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAavD,MAAM,CAAC,MAAM,SAAS,GAAqB;IACzC,GAAG,aAAa;IAChB,GAAG,cAAc;IACjB,GAAG,mBAAmB;IACtB,GAAG,eAAe;IAClB,GAAG,cAAc;IACjB,GAAG,kBAAkB;CACtB,CAAA;AAED,+FAA+F;AAC/F,8FAA8F;AAC9F,8FAA8F;AAC9F,OAAO,EAAE,cAAc,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAA;AAC5F,gGAAgG;AAChG,gGAAgG;AAChG,oDAAoD;AACpD,OAAO,EACL,gCAAgC,EAChC,uCAAuC,EACvC,6BAA6B,GAC9B,MAAM,yBAAyB,CAAA;AAChC,+FAA+F;AAC/F,iGAAiG;AACjG,gGAAgG;AAChG,qFAAqF;AACrF,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AAE5F,uEAAuE;AACvE,MAAM,CAAC,MAAM,eAAe,GAAwC,IAAI,GAAG,CACzE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CACrD,CAAA;AAED,oFAAoF;AACpF,uFAAuF;AACvF,sFAAsF;AACtF,sFAAsF;AACtF,wFAAwF;AACxF,iFAAiF;AACjF,wFAAwF;AACxF,oCAAoC;AACpC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAA;AAEpD,mGAAmG;AACnG,MAAM,UAAU,sBAAsB,CAAC,QAAwB;IAC7D,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;AACvC,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,uBAAuB,CAAC,SAAmC;IACzE,KAAK,MAAM,QAAQ,IAAI,SAAS;QAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAA;AACpE,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,8BAA8B;IAC5C,UAAU,CAAC,KAAK,EAAE,CAAA;AACpB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAA;IAChD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAA;IAC9C,KAAK,MAAM,QAAQ,IAAI,SAAS;QAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IACjE,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC3E,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACtD,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { TaskType } from '@cat-factory/contracts';
2
+ /**
3
+ * Register the default fragment ids for a task type. Every NEW task of `taskType` created
4
+ * on the board then starts with these fragments (unioned with the built-in defaults and
5
+ * whatever the task inherits). Re-registering the same task type REPLACES its registered
6
+ * set. The ids reference the universal fragment pool (built-in catalog plus any
7
+ * `registerPromptFragment`-registered fragments); an unresolvable id is simply skipped
8
+ * when bodies are composed at run time, so registration order with `registerPromptFragment`
9
+ * does not matter.
10
+ */
11
+ export declare function registerTaskTypeDefaultFragments(taskType: TaskType, fragmentIds: Iterable<string>): void;
12
+ /** Drop all registered per-task-type defaults. Intended for tests that exercise registration. */
13
+ export declare function clearRegisteredTaskTypeDefaultFragments(): void;
14
+ /**
15
+ * The effective default fragment ids a new task of `taskType` is seeded with: the built-in
16
+ * defaults for the type (the document writing-style set, else none) unioned with any
17
+ * deployment-registered ids, deduped and order-stable (built-ins first). Empty when the
18
+ * type has no built-in and nothing is registered.
19
+ */
20
+ export declare function defaultFragmentIdsForTaskType(taskType: TaskType): string[];
21
+ //# sourceMappingURL=task-type-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-type-defaults.d.ts","sourceRoot":"","sources":["../src/task-type-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAkCtD;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC5B,IAAI,CAEN;AAED,iGAAiG;AACjG,wBAAgB,uCAAuC,IAAI,IAAI,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAK1E"}
@@ -0,0 +1,59 @@
1
+ import { DEFAULT_DOCUMENT_STYLE_FRAGMENT_IDS } from './collections/style.js';
2
+ // ---------------------------------------------------------------------------
3
+ // Per-TASK-TYPE default best-practice fragment ids.
4
+ //
5
+ // The fragments a NEW task of a given type (`document`, `review`, `feature`, …) is
6
+ // pre-seeded with at creation. The board service unions these onto a task's
7
+ // `fragmentIds` when it is created (alongside whatever the task inherits from its
8
+ // service or an explicit create-form pick), so every new task of that type starts with
9
+ // the guidance without any per-block or per-workspace configuration.
10
+ //
11
+ // This is the deployment-level PROGRAMMATIC seam — a module-global registry mirroring
12
+ // `registerPromptFragment` and `registerDocTemplate`. A deployment adds its own custom
13
+ // fragments via `registerPromptFragments(...)` (universal pool) and then declares them as
14
+ // the default for a task type via `registerTaskTypeDefaultFragments('review', [...ids])`,
15
+ // so e.g. every new documentation or review task starts with that org's guidance. The
16
+ // call happens once at startup (an import side effect in the deployment entry, before
17
+ // `start()` / `startLocal()`), exactly like `registerPromptFragments`.
18
+ //
19
+ // The shipped `document` writing-style defaults (`DEFAULT_DOCUMENT_STYLE_FRAGMENT_IDS`)
20
+ // are the ONLY built-in per-type default; they are always applied for a document task and
21
+ // union with any registered ids, so registering document defaults augments (never wipes)
22
+ // the writing-style guidance. When nothing is registered, behaviour is unchanged.
23
+ // ---------------------------------------------------------------------------
24
+ /** The built-in per-task-type defaults shipped with the catalog (today: document only). */
25
+ const BUILTIN_TASK_TYPE_DEFAULTS = {
26
+ document: DEFAULT_DOCUMENT_STYLE_FRAGMENT_IDS,
27
+ };
28
+ /** Deployment-registered per-task-type default fragment ids (added to the built-ins). */
29
+ const registered = new Map();
30
+ /**
31
+ * Register the default fragment ids for a task type. Every NEW task of `taskType` created
32
+ * on the board then starts with these fragments (unioned with the built-in defaults and
33
+ * whatever the task inherits). Re-registering the same task type REPLACES its registered
34
+ * set. The ids reference the universal fragment pool (built-in catalog plus any
35
+ * `registerPromptFragment`-registered fragments); an unresolvable id is simply skipped
36
+ * when bodies are composed at run time, so registration order with `registerPromptFragment`
37
+ * does not matter.
38
+ */
39
+ export function registerTaskTypeDefaultFragments(taskType, fragmentIds) {
40
+ registered.set(taskType, [...fragmentIds]);
41
+ }
42
+ /** Drop all registered per-task-type defaults. Intended for tests that exercise registration. */
43
+ export function clearRegisteredTaskTypeDefaultFragments() {
44
+ registered.clear();
45
+ }
46
+ /**
47
+ * The effective default fragment ids a new task of `taskType` is seeded with: the built-in
48
+ * defaults for the type (the document writing-style set, else none) unioned with any
49
+ * deployment-registered ids, deduped and order-stable (built-ins first). Empty when the
50
+ * type has no built-in and nothing is registered.
51
+ */
52
+ export function defaultFragmentIdsForTaskType(taskType) {
53
+ const builtin = BUILTIN_TASK_TYPE_DEFAULTS[taskType] ?? [];
54
+ const custom = registered.get(taskType) ?? [];
55
+ if (custom.length === 0)
56
+ return [...builtin];
57
+ return [...new Set([...builtin, ...custom])];
58
+ }
59
+ //# sourceMappingURL=task-type-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-type-defaults.js","sourceRoot":"","sources":["../src/task-type-defaults.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mCAAmC,EAAE,MAAM,wBAAwB,CAAA;AAE5E,8EAA8E;AAC9E,oDAAoD;AACpD,EAAE;AACF,mFAAmF;AACnF,4EAA4E;AAC5E,kFAAkF;AAClF,uFAAuF;AACvF,qEAAqE;AACrE,EAAE;AACF,sFAAsF;AACtF,uFAAuF;AACvF,0FAA0F;AAC1F,0FAA0F;AAC1F,sFAAsF;AACtF,sFAAsF;AACtF,uEAAuE;AACvE,EAAE;AACF,wFAAwF;AACxF,0FAA0F;AAC1F,yFAAyF;AACzF,kFAAkF;AAClF,8EAA8E;AAE9E,2FAA2F;AAC3F,MAAM,0BAA0B,GAAiD;IAC/E,QAAQ,EAAE,mCAAmC;CAC9C,CAAA;AAED,yFAAyF;AACzF,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAA;AAEzD;;;;;;;;GAQG;AACH,MAAM,UAAU,gCAAgC,CAC9C,QAAkB,EAClB,WAA6B;IAE7B,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAA;AAC5C,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,uCAAuC;IACrD,UAAU,CAAC,KAAK,EAAE,CAAA;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,QAAkB;IAC9D,MAAM,OAAO,GAAG,0BAA0B,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC1D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAC9C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/prompt-fragments",
3
- "version": "0.13.48",
3
+ "version": "0.14.1",
4
4
  "description": "Curated, versioned best-practice prompt fragments injected into agent system prompts.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,7 +24,7 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@cat-factory/contracts": "0.154.1"
27
+ "@cat-factory/contracts": "0.154.2"
28
28
  },
29
29
  "devDependencies": {
30
30
  "typescript": "7.0.2",