traits 0.4.0 → 0.5.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 (106) hide show
  1. package/Assessment.ts +14 -0
  2. package/LICENSE +203 -0
  3. package/Source.ts +13 -0
  4. package/Trait.ts +51 -0
  5. package/TraitConflict.ts +52 -0
  6. package/TraitDerivation.ts +137 -0
  7. package/TraitEvaluation.ts +69 -0
  8. package/TraitStore.ts +88 -0
  9. package/TraitsConfig.ts +57 -0
  10. package/TraitsContext.ts +11 -0
  11. package/_util/Approval.ts +59 -0
  12. package/_util/Git.ts +25 -0
  13. package/_util/TraitsConfigProvider.ts +22 -0
  14. package/_util/TraitsTelemetry.ts +20 -0
  15. package/_util/words.ts +555 -0
  16. package/commands/init.ts +73 -0
  17. package/dist/Assessment.d.ts +12 -0
  18. package/dist/Assessment.d.ts.map +1 -0
  19. package/dist/Assessment.js +12 -0
  20. package/dist/Assessment.js.map +1 -0
  21. package/dist/Source.d.ts +21 -0
  22. package/dist/Source.d.ts.map +1 -0
  23. package/dist/Source.js +10 -0
  24. package/dist/Source.js.map +1 -0
  25. package/dist/Trait.d.ts +12 -0
  26. package/dist/Trait.d.ts.map +1 -0
  27. package/dist/Trait.js +44 -0
  28. package/dist/Trait.js.map +1 -0
  29. package/dist/TraitConflict.d.ts +56 -0
  30. package/dist/TraitConflict.d.ts.map +1 -0
  31. package/dist/TraitConflict.js +47 -0
  32. package/dist/TraitConflict.js.map +1 -0
  33. package/dist/TraitDerivation.d.ts +99 -0
  34. package/dist/TraitDerivation.d.ts.map +1 -0
  35. package/dist/TraitDerivation.js +109 -0
  36. package/dist/TraitDerivation.js.map +1 -0
  37. package/dist/TraitEvaluation.d.ts +68 -0
  38. package/dist/TraitEvaluation.d.ts.map +1 -0
  39. package/dist/TraitEvaluation.js +61 -0
  40. package/dist/TraitEvaluation.js.map +1 -0
  41. package/dist/TraitStore.d.ts +17 -0
  42. package/dist/TraitStore.d.ts.map +1 -0
  43. package/dist/TraitStore.js +57 -0
  44. package/dist/TraitStore.js.map +1 -0
  45. package/dist/TraitsConfig.d.ts +14 -0
  46. package/dist/TraitsConfig.d.ts.map +1 -0
  47. package/dist/TraitsConfig.js +40 -0
  48. package/dist/TraitsConfig.js.map +1 -0
  49. package/dist/TraitsContext.d.ts +11 -0
  50. package/dist/TraitsContext.d.ts.map +1 -0
  51. package/dist/TraitsContext.js +4 -0
  52. package/dist/TraitsContext.js.map +1 -0
  53. package/dist/_util/Approval.d.ts +28 -0
  54. package/dist/_util/Approval.d.ts.map +1 -0
  55. package/dist/_util/Approval.js +48 -0
  56. package/dist/_util/Approval.js.map +1 -0
  57. package/dist/_util/Git.d.ts +15 -0
  58. package/dist/_util/Git.d.ts.map +1 -0
  59. package/dist/_util/Git.js +17 -0
  60. package/dist/_util/Git.js.map +1 -0
  61. package/dist/_util/TraitsConfigProvider.d.ts +3 -0
  62. package/dist/_util/TraitsConfigProvider.d.ts.map +1 -0
  63. package/dist/_util/TraitsConfigProvider.js +17 -0
  64. package/dist/_util/TraitsConfigProvider.js.map +1 -0
  65. package/dist/_util/TraitsTelemetry.d.ts +3 -0
  66. package/dist/_util/TraitsTelemetry.d.ts.map +1 -0
  67. package/dist/_util/TraitsTelemetry.js +12 -0
  68. package/dist/_util/TraitsTelemetry.js.map +1 -0
  69. package/dist/_util/words.d.ts +2 -0
  70. package/dist/_util/words.d.ts.map +1 -0
  71. package/dist/_util/words.js +556 -0
  72. package/dist/_util/words.js.map +1 -0
  73. package/dist/commands/init.d.ts +4 -0
  74. package/dist/commands/init.d.ts.map +1 -0
  75. package/dist/commands/init.js +67 -0
  76. package/dist/commands/init.js.map +1 -0
  77. package/dist/index.d.ts +10 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +10 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/main.d.ts +3 -0
  82. package/dist/main.d.ts.map +1 -0
  83. package/dist/main.js +73 -0
  84. package/dist/main.js.map +1 -0
  85. package/dist/package.json +53 -0
  86. package/dist/toolkit/CheckTraits.d.ts +79 -0
  87. package/dist/toolkit/CheckTraits.d.ts.map +1 -0
  88. package/dist/toolkit/CheckTraits.js +110 -0
  89. package/dist/toolkit/CheckTraits.js.map +1 -0
  90. package/dist/toolkit/DeriveTrait.d.ts +108 -0
  91. package/dist/toolkit/DeriveTrait.d.ts.map +1 -0
  92. package/dist/toolkit/DeriveTrait.js +54 -0
  93. package/dist/toolkit/DeriveTrait.js.map +1 -0
  94. package/dist/toolkit/toolkit.d.ts +3 -0
  95. package/dist/toolkit/toolkit.d.ts.map +1 -0
  96. package/dist/toolkit/toolkit.js +6 -0
  97. package/dist/toolkit/toolkit.js.map +1 -0
  98. package/index.ts +9 -0
  99. package/main.ts +113 -0
  100. package/package.json +46 -0
  101. package/skills/traits/SKILL.md +307 -0
  102. package/toolkit/CheckTraits.ts +150 -0
  103. package/toolkit/DeriveTrait.ts +59 -0
  104. package/toolkit/toolkit.ts +9 -0
  105. 1289345811335-0.8567837113514543/lib/traits.js +0 -662
  106. 1289345811335-0.8567837113514543/package.json +0 -7
package/_util/words.ts ADDED
@@ -0,0 +1,555 @@
1
+ export const words = [
2
+ "acacia",
3
+ "adventure",
4
+ "agate",
5
+ "alabaster",
6
+ "albatross",
7
+ "alchemy",
8
+ "alder",
9
+ "allure",
10
+ "alpine",
11
+ "amaranth",
12
+ "amber",
13
+ "ambrosia",
14
+ "amethyst",
15
+ "amulet",
16
+ "anemone",
17
+ "angel",
18
+ "anthem",
19
+ "antler",
20
+ "apricot",
21
+ "aquamarine",
22
+ "aquarium",
23
+ "arbor",
24
+ "arcadia",
25
+ "archway",
26
+ "aria",
27
+ "arpeggio",
28
+ "arrowroot",
29
+ "aspen",
30
+ "aster",
31
+ "astral",
32
+ "atlas",
33
+ "aurora",
34
+ "autumn",
35
+ "avalon",
36
+ "aviary",
37
+ "azalea",
38
+ "azure",
39
+ "badger",
40
+ "ballad",
41
+ "ballet",
42
+ "bamboo",
43
+ "banyan",
44
+ "basil",
45
+ "bayberry",
46
+ "beacon",
47
+ "bead",
48
+ "beech",
49
+ "bell",
50
+ "bellflower",
51
+ "berry",
52
+ "birch",
53
+ "birdsong",
54
+ "bliss",
55
+ "bloom",
56
+ "blossom",
57
+ "bluebell",
58
+ "bluebird",
59
+ "blueberry",
60
+ "boreal",
61
+ "bower",
62
+ "bramble",
63
+ "brass",
64
+ "breeze",
65
+ "brook",
66
+ "bubble",
67
+ "buttercup",
68
+ "butterfly",
69
+ "cabin",
70
+ "cadence",
71
+ "cairn",
72
+ "calico",
73
+ "camellia",
74
+ "canary",
75
+ "candle",
76
+ "canopy",
77
+ "canvas",
78
+ "canyon",
79
+ "caravan",
80
+ "cardinal",
81
+ "carnation",
82
+ "carousel",
83
+ "cascade",
84
+ "castle",
85
+ "cedar",
86
+ "celadon",
87
+ "celestial",
88
+ "cello",
89
+ "chalet",
90
+ "chalice",
91
+ "chamomile",
92
+ "charm",
93
+ "cherry",
94
+ "chickadee",
95
+ "chime",
96
+ "chinchilla",
97
+ "cinnamon",
98
+ "citadel",
99
+ "citrine",
100
+ "citrus",
101
+ "clarinet",
102
+ "clematis",
103
+ "cloud",
104
+ "clover",
105
+ "cobalt",
106
+ "cocoa",
107
+ "comet",
108
+ "compass",
109
+ "concerto",
110
+ "constellation",
111
+ "copper",
112
+ "coral",
113
+ "cosmic",
114
+ "cosmos",
115
+ "cottage",
116
+ "cove",
117
+ "crane",
118
+ "crescent",
119
+ "cricket",
120
+ "crocus",
121
+ "crown",
122
+ "crystal",
123
+ "cupcake",
124
+ "cypress",
125
+ "daffodil",
126
+ "dahlia",
127
+ "daisy",
128
+ "dandelion",
129
+ "dapple",
130
+ "dawn",
131
+ "daybreak",
132
+ "daydream",
133
+ "deer",
134
+ "delight",
135
+ "dew",
136
+ "dewdrop",
137
+ "diamond",
138
+ "dolphin",
139
+ "dove",
140
+ "dragon",
141
+ "dragonfly",
142
+ "dream",
143
+ "dreamer",
144
+ "dreamscape",
145
+ "drift",
146
+ "driftwood",
147
+ "droplet",
148
+ "dune",
149
+ "dusk",
150
+ "eagle",
151
+ "echo",
152
+ "edelweiss",
153
+ "elderberry",
154
+ "elm",
155
+ "elysian",
156
+ "ember",
157
+ "emerald",
158
+ "enchantment",
159
+ "enclave",
160
+ "enigma",
161
+ "epiphany",
162
+ "equinox",
163
+ "ethereal",
164
+ "evergreen",
165
+ "fable",
166
+ "fairy",
167
+ "falcon",
168
+ "fantasia",
169
+ "faraway",
170
+ "fawn",
171
+ "feather",
172
+ "fern",
173
+ "festival",
174
+ "fig",
175
+ "filigree",
176
+ "finch",
177
+ "firefly",
178
+ "fir",
179
+ "fjord",
180
+ "flamingo",
181
+ "fleur",
182
+ "flora",
183
+ "flourish",
184
+ "flower",
185
+ "flute",
186
+ "foal",
187
+ "forest",
188
+ "fountain",
189
+ "fox",
190
+ "freesia",
191
+ "frog",
192
+ "frost",
193
+ "galaxy",
194
+ "garden",
195
+ "gardenia",
196
+ "garland",
197
+ "garnet",
198
+ "gazebo",
199
+ "gazelle",
200
+ "gem",
201
+ "ginger",
202
+ "ginkgo",
203
+ "glacier",
204
+ "glade",
205
+ "gleam",
206
+ "glimmer",
207
+ "glitter",
208
+ "glow",
209
+ "gold",
210
+ "golden",
211
+ "goldfinch",
212
+ "gossamer",
213
+ "grace",
214
+ "granite",
215
+ "grape",
216
+ "greenhouse",
217
+ "griffin",
218
+ "grotto",
219
+ "grove",
220
+ "halo",
221
+ "harbor",
222
+ "hare",
223
+ "harmony",
224
+ "harp",
225
+ "harvest",
226
+ "haven",
227
+ "hawthorn",
228
+ "heather",
229
+ "hedgehog",
230
+ "heliotrope",
231
+ "heron",
232
+ "hibiscus",
233
+ "hickory",
234
+ "highland",
235
+ "hilltop",
236
+ "holly",
237
+ "honey",
238
+ "honeybee",
239
+ "honeysuckle",
240
+ "hope",
241
+ "horizon",
242
+ "hummingbird",
243
+ "hyacinth",
244
+ "hydrangea",
245
+ "ibis",
246
+ "icicle",
247
+ "idyll",
248
+ "illumine",
249
+ "imagine",
250
+ "indigo",
251
+ "iris",
252
+ "island",
253
+ "ivory",
254
+ "ivy",
255
+ "jade",
256
+ "jasmine",
257
+ "jazz",
258
+ "jewel",
259
+ "journey",
260
+ "joy",
261
+ "jubilee",
262
+ "juniper",
263
+ "kaleidoscope",
264
+ "karate",
265
+ "kestrel",
266
+ "kingfisher",
267
+ "kite",
268
+ "kiwi",
269
+ "koala",
270
+ "koi",
271
+ "lagoon",
272
+ "lake",
273
+ "lantern",
274
+ "lapis",
275
+ "larch",
276
+ "lark",
277
+ "laurel",
278
+ "lavender",
279
+ "leaf",
280
+ "legend",
281
+ "lemon",
282
+ "lemur",
283
+ "lighthouse",
284
+ "lilac",
285
+ "lily",
286
+ "linden",
287
+ "lotus",
288
+ "lullaby",
289
+ "lumen",
290
+ "luminous",
291
+ "lunar",
292
+ "lupine",
293
+ "lyra",
294
+ "lyric",
295
+ "macaw",
296
+ "magic",
297
+ "magnolia",
298
+ "mandarin",
299
+ "mandolin",
300
+ "mango",
301
+ "maple",
302
+ "marble",
303
+ "marigold",
304
+ "marimba",
305
+ "mariposa",
306
+ "marvel",
307
+ "meadow",
308
+ "melody",
309
+ "meridian",
310
+ "mermaid",
311
+ "meteor",
312
+ "midnight",
313
+ "milkweed",
314
+ "mimosa",
315
+ "mint",
316
+ "mirage",
317
+ "mist",
318
+ "moon",
319
+ "moonbeam",
320
+ "moonflower",
321
+ "moonlight",
322
+ "moonrise",
323
+ "moonstone",
324
+ "morning",
325
+ "mosaic",
326
+ "moss",
327
+ "mountain",
328
+ "mulberry",
329
+ "muse",
330
+ "music",
331
+ "myriad",
332
+ "myrtle",
333
+ "mystic",
334
+ "myth",
335
+ "narwhal",
336
+ "nebula",
337
+ "nectar",
338
+ "nightingale",
339
+ "nimbus",
340
+ "nocturne",
341
+ "nova",
342
+ "oak",
343
+ "oasis",
344
+ "ocean",
345
+ "octave",
346
+ "odyssey",
347
+ "olive",
348
+ "opal",
349
+ "opera",
350
+ "orchard",
351
+ "orchestra",
352
+ "orchid",
353
+ "origami",
354
+ "oriole",
355
+ "otter",
356
+ "owl",
357
+ "pagoda",
358
+ "palace",
359
+ "palm",
360
+ "panda",
361
+ "papaya",
362
+ "papyrus",
363
+ "paradise",
364
+ "parakeet",
365
+ "parchment",
366
+ "pastel",
367
+ "pathway",
368
+ "pavilion",
369
+ "peach",
370
+ "peacock",
371
+ "pear",
372
+ "pearl",
373
+ "pebble",
374
+ "pegasus",
375
+ "pelican",
376
+ "penguin",
377
+ "peony",
378
+ "peridot",
379
+ "periwinkle",
380
+ "petal",
381
+ "phoenix",
382
+ "piano",
383
+ "piccolo",
384
+ "pilgrim",
385
+ "pine",
386
+ "pinnacle",
387
+ "pixie",
388
+ "planet",
389
+ "plum",
390
+ "plume",
391
+ "poem",
392
+ "poetry",
393
+ "polaris",
394
+ "pomegranate",
395
+ "pond",
396
+ "poplar",
397
+ "poppy",
398
+ "porcelain",
399
+ "portal",
400
+ "prairie",
401
+ "primrose",
402
+ "prism",
403
+ "promise",
404
+ "puffin",
405
+ "quail",
406
+ "quartz",
407
+ "quest",
408
+ "quill",
409
+ "quince",
410
+ "rabbit",
411
+ "radiance",
412
+ "rainbow",
413
+ "raindrop",
414
+ "rainfall",
415
+ "raven",
416
+ "realm",
417
+ "redwood",
418
+ "reed",
419
+ "reef",
420
+ "reflection",
421
+ "reverie",
422
+ "rhapsody",
423
+ "ribbon",
424
+ "ripple",
425
+ "river",
426
+ "robin",
427
+ "rose",
428
+ "rosemary",
429
+ "rosewood",
430
+ "rowan",
431
+ "ruby",
432
+ "rune",
433
+ "saffron",
434
+ "sage",
435
+ "sail",
436
+ "sandalwood",
437
+ "sapphire",
438
+ "satin",
439
+ "savanna",
440
+ "seabird",
441
+ "seaglass",
442
+ "seahorse",
443
+ "seal",
444
+ "seashell",
445
+ "sequoia",
446
+ "serenade",
447
+ "serendipity",
448
+ "serenity",
449
+ "shamrock",
450
+ "shell",
451
+ "shimmer",
452
+ "silhouette",
453
+ "silk",
454
+ "silver",
455
+ "skylark",
456
+ "snow",
457
+ "snowdrop",
458
+ "snowfall",
459
+ "snowflake",
460
+ "solace",
461
+ "solar",
462
+ "solstice",
463
+ "sonata",
464
+ "songbird",
465
+ "sorrel",
466
+ "spark",
467
+ "sparkle",
468
+ "sparrow",
469
+ "spell",
470
+ "spire",
471
+ "spring",
472
+ "sprite",
473
+ "spruce",
474
+ "star",
475
+ "stardust",
476
+ "starfish",
477
+ "starlight",
478
+ "starling",
479
+ "stone",
480
+ "storybook",
481
+ "strawberry",
482
+ "stream",
483
+ "summer",
484
+ "sun",
485
+ "sunbeam",
486
+ "sunflower",
487
+ "sunlight",
488
+ "sunrise",
489
+ "sunset",
490
+ "swallow",
491
+ "swan",
492
+ "sweetpea",
493
+ "sycamore",
494
+ "symphony",
495
+ "talisman",
496
+ "tamarind",
497
+ "tangerine",
498
+ "tapestry",
499
+ "teal",
500
+ "telescope",
501
+ "terrace",
502
+ "thistle",
503
+ "thrush",
504
+ "thyme",
505
+ "tide",
506
+ "tiger",
507
+ "topaz",
508
+ "toucan",
509
+ "tower",
510
+ "treasure",
511
+ "treetop",
512
+ "trill",
513
+ "tulip",
514
+ "turquoise",
515
+ "turtle",
516
+ "twilight",
517
+ "twinkle",
518
+ "unicorn",
519
+ "valley",
520
+ "vanilla",
521
+ "velvet",
522
+ "verbena",
523
+ "verdant",
524
+ "vesper",
525
+ "violet",
526
+ "violin",
527
+ "vista",
528
+ "voyage",
529
+ "waltz",
530
+ "wand",
531
+ "wander",
532
+ "waterfall",
533
+ "wave",
534
+ "whale",
535
+ "whimsy",
536
+ "whisper",
537
+ "wildflower",
538
+ "willow",
539
+ "windchime",
540
+ "windmill",
541
+ "wing",
542
+ "winter",
543
+ "wish",
544
+ "wisteria",
545
+ "wizard",
546
+ "wolf",
547
+ "wonder",
548
+ "woodland",
549
+ "wren",
550
+ "yarrow",
551
+ "yonder",
552
+ "zenith",
553
+ "zephyr",
554
+ "zinnia"
555
+ ] as const
@@ -0,0 +1,73 @@
1
+ import { Console, Effect, FileSystem, Path, String } from "effect"
2
+ import { Command } from "effect/cli"
3
+
4
+ import { getWorktreeRoot } from "../_util/Git.ts"
5
+
6
+ const configuration = String.stripMargin(`
7
+ |import { OpenAiClient, OpenAiLanguageModel } from "@effect/ai-openai"
8
+ |import { TypeSafeClient, TypeSafeDecisionModel } from "@effect/ai-typesafe"
9
+ |import { Config, Layer } from "effect"
10
+ |import type { TraitsConfig } from "traits"
11
+ |
12
+ |export default {
13
+ | excludes: ["**/dist/**", "node_modules/**"],
14
+ | layerDecisionModel: TypeSafeDecisionModel.layer({ model: "jev-latest" }).pipe(
15
+ | Layer.provide(TypeSafeClient.layerConfig())
16
+ | ),
17
+ | layerLanguageModel: OpenAiLanguageModel.layer({
18
+ | model: "gpt-6.1-sol",
19
+ | config: { reasoning: { effort: "low" } }
20
+ | }).pipe(Layer.provide(OpenAiClient.layerConfig({ apiKey: Config.Redacted("OPENAI_API_KEY") })))
21
+ |} satisfies TraitsConfig
22
+ `)
23
+
24
+ const nextSteps = String.stripMargin(`
25
+ |
26
+ |Next steps:
27
+ |
28
+ |1. Edit traits.ts to choose your decision and language models. Install the
29
+ | provider packages imported by that file in your project.
30
+ | Git-ignored files are excluded by default; set excludeGitignored: false
31
+ | in traits.ts to disable the fresh Git file-set filter on each check.
32
+ |
33
+ |2. Configure your chosen providers' API keys in the MCP process environment
34
+ | or an untracked .env at the checkout root. The default providers use
35
+ | TYPESAFE_API_KEY and OPENAI_API_KEY. Never commit your secrets.
36
+ |
37
+ |3. Add Traits as a local MCP server in your coding agent of choice:
38
+ | command: npx -y traits
39
+ | working directory: the current checkout root
40
+ | Connect the server and confirm derive_trait and check_traits are available.
41
+ |
42
+ |4. Install the bundled Traits skill from the checkout root:
43
+ | pnpm 12.11+: pnpm add -D traits, then pnpm approve to approve its skills.
44
+ | pnpm links into existing agent skill directories or the running agent's
45
+ | directory. Set skills.dirs in pnpm-workspace.yaml if needed.
46
+ | Other package managers or older pnpm: install traits locally, then run
47
+ | npx skills add ./node_modules/traits --skill traits to choose your agents.
48
+ | Without a local Traits dependency, run:
49
+ | npx skills add https://github.com/crosshatch/traits/tree/main/traits/skills/traits
50
+ | This uses the repository version; local installation uses your package's skill.
51
+ | The skills CLI installs a snapshot; rerun after updating Traits.
52
+ | pnpm dlx and global installs do not link skills.
53
+ | Existing skill copies are left untouched. Back up any customizations before
54
+ | replacing an old copy, and avoid loading both it and a package-managed skill.
55
+ `)
56
+
57
+ export const init = Command.make("init").pipe(
58
+ Command.withHandler(
59
+ Effect.fn("traits.init")(function* () {
60
+ const fs = yield* FileSystem.FileSystem
61
+ const path = yield* Path.Path
62
+ const root = yield* getWorktreeRoot
63
+ const destination = path.join(root, "traits.ts")
64
+ if (yield* fs.exists(destination)) {
65
+ yield* Console.log(`Leaving existing "${destination}" unchanged`)
66
+ } else {
67
+ yield* fs.writeFileString(destination, configuration, { flag: "wx" })
68
+ yield* Console.log(`Created "${destination}"`)
69
+ }
70
+ yield* Console.log(nextSteps)
71
+ })
72
+ )
73
+ )
@@ -0,0 +1,12 @@
1
+ import { Schema as S } from "effect";
2
+ export type Assessment = typeof Assessment.Type;
3
+ export declare const Assessment: S.Struct<{
4
+ readonly classification: S.Literals<readonly ["compliant", "violation", "not-applicable", "inconclusive"]>;
5
+ readonly probabilities: S.Struct<{
6
+ readonly compliant: S.Finite;
7
+ readonly violation: S.Finite;
8
+ readonly "not-applicable": S.Finite;
9
+ readonly inconclusive: S.Finite;
10
+ }>;
11
+ }>;
12
+ //# sourceMappingURL=Assessment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Assessment.d.ts","sourceRoot":"","sources":["../Assessment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAIpC,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAC/C,eAAO,MAAM,UAAU;;;;;;;;EAQrB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Schema as S } from "effect";
2
+ const Probability = S.Finite.check(S.isBetween({ minimum: 0, maximum: 1 }));
3
+ export const Assessment = S.Struct({
4
+ classification: S.Literals(["compliant", "violation", "not-applicable", "inconclusive"]),
5
+ probabilities: S.Struct({
6
+ compliant: Probability,
7
+ violation: Probability,
8
+ "not-applicable": Probability,
9
+ inconclusive: Probability
10
+ })
11
+ });
12
+ //# sourceMappingURL=Assessment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Assessment.js","sourceRoot":"","sources":["../Assessment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEpC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAG3E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,cAAc,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;IACxF,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,SAAS,EAAE,WAAW;QACtB,SAAS,EAAE,WAAW;QACtB,gBAAgB,EAAE,WAAW;QAC7B,YAAY,EAAE,WAAW;KAC1B,CAAC;CACH,CAAC,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { Schema as S } from "effect";
2
+ export type SourceLocation = typeof SourceLocation.Type;
3
+ export declare const SourceLocation: S.TaggedUnion<{
4
+ readonly File: S.TaggedStruct<"File", {
5
+ readonly path: S.String;
6
+ readonly startLine: S.Int;
7
+ }>;
8
+ readonly Generated: S.TaggedStruct<"Generated", {}>;
9
+ }>;
10
+ export type Source = typeof Source.Type;
11
+ export declare const Source: S.Struct<{
12
+ readonly text: S.String;
13
+ readonly location: S.optional<S.TaggedUnion<{
14
+ readonly File: S.TaggedStruct<"File", {
15
+ readonly path: S.String;
16
+ readonly startLine: S.Int;
17
+ }>;
18
+ readonly Generated: S.TaggedStruct<"Generated", {}>;
19
+ }>>;
20
+ }>;
21
+ //# sourceMappingURL=Source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Source.d.ts","sourceRoot":"","sources":["../Source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAEpC,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAA;AACvD,eAAO,MAAM,cAAc;;;;;;EAGzB,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AACvC,eAAO,MAAM,MAAM;;;;;;;;;EAGjB,CAAA"}
package/dist/Source.js ADDED
@@ -0,0 +1,10 @@
1
+ import { Schema as S } from "effect";
2
+ export const SourceLocation = S.TaggedUnion({
3
+ File: { path: S.String, startLine: S.Int },
4
+ Generated: {}
5
+ });
6
+ export const Source = S.Struct({
7
+ text: S.String,
8
+ location: SourceLocation.pipe(S.optional)
9
+ });
10
+ //# sourceMappingURL=Source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Source.js","sourceRoot":"","sources":["../Source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,QAAQ,CAAA;AAGpC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC;IAC1C,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE;IAC1C,SAAS,EAAE,EAAE;CACd,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,CAAC,MAAM;IACd,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;CAC1C,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Effect, Schema as S } from "effect";
2
+ import { DecisionModel, LanguageModel } from "effect/ai";
3
+ import { TraitsContext } from "./TraitsContext.ts";
4
+ export type TraitId = typeof TraitId.Type;
5
+ export declare const TraitId: S.brand<S.String, "traits/Trait">;
6
+ export type Trait = typeof Trait.Type;
7
+ export declare const Trait: S.Struct<{
8
+ readonly id: S.brand<S.String, "traits/Trait">;
9
+ readonly body: S.String;
10
+ }>;
11
+ export declare const checkDecomposability: (proposedTrait: string) => Effect.Effect<readonly string[], import("effect/ai/AiError").AiError, DecisionModel.DecisionModel | LanguageModel.LanguageModel | TraitsContext>;
12
+ //# sourceMappingURL=Trait.d.ts.map