@interf/compiler 0.16.0 → 0.21.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 (203) hide show
  1. package/LICENSE.md +1 -0
  2. package/README.md +90 -73
  3. package/TRADEMARKS.md +4 -4
  4. package/dist/cli/commands/mcp.d.ts +0 -34
  5. package/dist/cli/commands/mcp.js +246 -45
  6. package/dist/cli/commands/method.js +261 -15
  7. package/dist/cli/commands/prep.js +116 -15
  8. package/dist/cli/commands/runs.js +103 -9
  9. package/dist/cli/commands/status.js +4 -2
  10. package/dist/cli/commands/test.d.ts +10 -0
  11. package/dist/cli/commands/{verify.js → test.js} +24 -17
  12. package/dist/cli/commands/web.js +82 -8
  13. package/dist/cli/commands/wizard.js +158 -51
  14. package/dist/cli/index.d.ts +2 -2
  15. package/dist/cli/index.js +3 -3
  16. package/dist/compiler-ui/404.html +1 -1
  17. package/dist/compiler-ui/__next.__PAGE__.txt +5 -5
  18. package/dist/compiler-ui/__next._full.txt +13 -12
  19. package/dist/compiler-ui/__next._head.txt +3 -3
  20. package/dist/compiler-ui/__next._index.txt +5 -4
  21. package/dist/compiler-ui/__next._tree.txt +4 -3
  22. package/dist/compiler-ui/_next/static/chunks/01646j7yi.w5a.css +1 -0
  23. package/dist/compiler-ui/_next/static/chunks/{0n51hrfoufc7g.js → 02f_.8.ebn556.js} +1 -1
  24. package/dist/compiler-ui/_next/static/chunks/02r7siaw-_p5w.js +1 -0
  25. package/dist/compiler-ui/_next/static/chunks/{08m7vf5asqlsm.js → 04d0ly-7xb~-j.js} +10 -10
  26. package/dist/compiler-ui/_next/static/chunks/0fhs9psnxqd8s.js +1 -0
  27. package/dist/compiler-ui/_next/static/chunks/0mssmhpbifj15.css +2 -0
  28. package/dist/compiler-ui/_next/static/chunks/0nypu~ddwxari.js +116 -0
  29. package/dist/compiler-ui/_next/static/chunks/0p3s8iyhgcww2.js +31 -0
  30. package/dist/compiler-ui/_next/static/chunks/0tjf-vu_rz8s0.css +1 -0
  31. package/dist/compiler-ui/_next/static/chunks/0u6p3fpbbfgtl.js +1 -0
  32. package/dist/compiler-ui/_next/static/chunks/0wpx5..8dnh0w.js +1 -0
  33. package/dist/compiler-ui/_next/static/chunks/0y0uj160p0ts~.js +1 -0
  34. package/dist/compiler-ui/_next/static/chunks/10t8l~_oenf.c.js +1 -0
  35. package/dist/compiler-ui/_next/static/chunks/13gz9e7z~imx1.js +5 -0
  36. package/dist/compiler-ui/_next/static/chunks/156xed-b6czaw.js +1 -0
  37. package/dist/compiler-ui/_next/static/chunks/{turbopack-0.uq1k8c0j4s..js → turbopack-02-3e_c-yz~5g.js} +1 -1
  38. package/dist/compiler-ui/_next/static/chunks/{turbopack-10e~t1yzi4svj.js → turbopack-0apv8vb-nczuy.js} +1 -1
  39. package/dist/compiler-ui/_not-found/__next._full.txt +10 -9
  40. package/dist/compiler-ui/_not-found/__next._head.txt +3 -3
  41. package/dist/compiler-ui/_not-found/__next._index.txt +5 -4
  42. package/dist/compiler-ui/_not-found/__next._not-found.__PAGE__.txt +2 -2
  43. package/dist/compiler-ui/_not-found/__next._not-found.txt +3 -3
  44. package/dist/compiler-ui/_not-found/__next._tree.txt +3 -2
  45. package/dist/compiler-ui/_not-found.html +1 -1
  46. package/dist/compiler-ui/_not-found.txt +10 -9
  47. package/dist/compiler-ui/index.html +1 -1
  48. package/dist/compiler-ui/index.txt +13 -12
  49. package/dist/packages/contracts/index.d.ts +2 -2
  50. package/dist/packages/contracts/index.js +1 -1
  51. package/dist/packages/contracts/lib/schema.d.ts +275 -72
  52. package/dist/packages/contracts/lib/schema.js +244 -83
  53. package/dist/packages/engine/action-definitions.d.ts +174 -13
  54. package/dist/packages/engine/action-definitions.js +125 -122
  55. package/dist/packages/engine/action-planner.js +4 -11
  56. package/dist/packages/engine/agents/lib/shells.d.ts +15 -5
  57. package/dist/packages/engine/agents/lib/shells.js +134 -123
  58. package/dist/packages/engine/agents/role-executors.js +1 -1
  59. package/dist/packages/engine/cloud-seams.d.ts +115 -0
  60. package/dist/packages/engine/cloud-seams.js +84 -0
  61. package/dist/packages/engine/compile/artifact-counts.d.ts +1 -1
  62. package/dist/packages/engine/compile/artifact-counts.js +3 -3
  63. package/dist/packages/engine/compile/artifact-status.d.ts +41 -0
  64. package/dist/packages/engine/compile/artifact-status.js +166 -0
  65. package/dist/packages/engine/compile/billing-events.d.ts +89 -0
  66. package/dist/packages/engine/compile/billing-events.js +74 -0
  67. package/dist/packages/engine/compile/check-evaluator.d.ts +66 -0
  68. package/dist/packages/engine/compile/check-evaluator.js +298 -0
  69. package/dist/packages/engine/compile/compiled-paths.js +6 -6
  70. package/dist/packages/engine/compile/compiled-schema.d.ts +7 -17
  71. package/dist/packages/engine/compile/compiled-schema.js +55 -70
  72. package/dist/packages/engine/compile/compiled-stage-plan.d.ts +1 -0
  73. package/dist/packages/engine/compile/compiled-stage-plan.js +32 -15
  74. package/dist/packages/engine/compile/compiled-stage-runner.js +1 -1
  75. package/dist/packages/engine/compile/index.d.ts +0 -1
  76. package/dist/packages/engine/compile/index.js +0 -1
  77. package/dist/packages/engine/compile/lib/schema.d.ts +111 -92
  78. package/dist/packages/engine/compile/lib/schema.js +35 -39
  79. package/dist/packages/engine/compile/method-primitives.d.ts +2 -2
  80. package/dist/packages/engine/compile/method-primitives.js +1 -1
  81. package/dist/packages/engine/compile/reset.js +4 -4
  82. package/dist/packages/engine/compile/runtime-contracts.js +2 -1
  83. package/dist/packages/engine/compile/runtime-prompt.js +3 -2
  84. package/dist/packages/engine/compile/runtime-reconcile.js +35 -35
  85. package/dist/packages/engine/compile/runtime-runs.js +0 -1
  86. package/dist/packages/engine/compile/runtime-types.d.ts +7 -8
  87. package/dist/packages/engine/compile/runtime.d.ts +1 -2
  88. package/dist/packages/engine/compile/runtime.js +0 -1
  89. package/dist/packages/engine/compile/state-health.js +6 -6
  90. package/dist/packages/engine/compile/state-view.js +7 -6
  91. package/dist/packages/engine/compile/validate-compiled.js +61 -30
  92. package/dist/packages/engine/compile/validate.js +26 -24
  93. package/dist/packages/engine/connection-config.js +1 -1
  94. package/dist/packages/engine/execution/lib/schema.d.ts +89 -33
  95. package/dist/packages/engine/execution/lib/schema.js +13 -5
  96. package/dist/packages/engine/index.d.ts +2 -2
  97. package/dist/packages/engine/index.js +1 -1
  98. package/dist/packages/engine/instance-paths.d.ts +15 -9
  99. package/dist/packages/engine/instance-paths.js +15 -9
  100. package/dist/packages/engine/lib/schema.d.ts +1316 -351
  101. package/dist/packages/engine/lib/schema.js +99 -36
  102. package/dist/packages/engine/native-run-handlers.js +25 -15
  103. package/dist/packages/engine/preparation-store.d.ts +9 -7
  104. package/dist/packages/engine/preparation-store.js +20 -0
  105. package/dist/packages/engine/requested-artifacts.d.ts +5 -0
  106. package/dist/packages/engine/requested-artifacts.js +36 -0
  107. package/dist/packages/engine/routes.d.ts +7 -1
  108. package/dist/packages/engine/routes.js +7 -1
  109. package/dist/packages/engine/run-observability.js +4 -4
  110. package/dist/packages/engine/runtime-event-applier.js +7 -0
  111. package/dist/packages/engine/runtime-proposal-helpers.d.ts +2 -2
  112. package/dist/packages/engine/runtime-proposal-helpers.js +6 -8
  113. package/dist/packages/engine/runtime-resource-builders.d.ts +11 -6
  114. package/dist/packages/engine/runtime-resource-builders.js +18 -6
  115. package/dist/packages/engine/runtime.d.ts +70 -8
  116. package/dist/packages/engine/runtime.js +304 -49
  117. package/dist/packages/engine/server.d.ts +25 -0
  118. package/dist/packages/engine/server.js +161 -50
  119. package/dist/packages/engine/verify/index.d.ts +10 -10
  120. package/dist/packages/engine/verify/index.js +8 -8
  121. package/dist/packages/engine/verify/readiness-check-run.d.ts +27 -4
  122. package/dist/packages/engine/verify/readiness-check-run.js +92 -24
  123. package/dist/packages/engine/verify/{test-execution.d.ts → verify-execution.d.ts} +2 -2
  124. package/dist/packages/engine/verify/{test-execution.js → verify-execution.js} +3 -3
  125. package/dist/packages/engine/verify/{test-paths.d.ts → verify-paths.d.ts} +1 -1
  126. package/dist/packages/engine/verify/{test-sandbox.d.ts → verify-sandbox.d.ts} +1 -1
  127. package/dist/packages/engine/verify/{test-specs.d.ts → verify-specs.d.ts} +1 -1
  128. package/dist/packages/engine/verify/{test-specs.js → verify-specs.js} +1 -1
  129. package/dist/packages/engine/verify/{test-targets.d.ts → verify-targets.d.ts} +1 -1
  130. package/dist/packages/engine/verify/{test.d.ts → verify.d.ts} +4 -4
  131. package/dist/packages/engine/verify/{test.js → verify.js} +3 -3
  132. package/dist/packages/engine/wire-schemas.d.ts +549 -0
  133. package/dist/packages/engine/wire-schemas.js +59 -0
  134. package/dist/packages/methods/authoring/method-authoring.d.ts +5 -1
  135. package/dist/packages/methods/authoring/method-authoring.js +68 -18
  136. package/dist/packages/methods/authoring/method-edit-session.js +5 -5
  137. package/dist/packages/methods/authoring/method-improvement.js +1 -1
  138. package/dist/packages/methods/package/builtin-compiled-method.d.ts +12 -12
  139. package/dist/packages/methods/package/builtin-compiled-method.js +26 -23
  140. package/dist/packages/methods/package/context-interface.d.ts +39 -26
  141. package/dist/packages/methods/package/context-interface.js +48 -39
  142. package/dist/packages/methods/package/interf-method-package.js +28 -47
  143. package/dist/packages/methods/package/local-methods.d.ts +4 -4
  144. package/dist/packages/methods/package/local-methods.js +53 -66
  145. package/dist/packages/methods/package/method-definitions.d.ts +4 -6
  146. package/dist/packages/methods/package/method-definitions.js +1 -5
  147. package/dist/packages/methods/package/method-helpers.d.ts +0 -2
  148. package/dist/packages/methods/package/method-helpers.js +0 -4
  149. package/dist/packages/project/interf-detect.js +6 -6
  150. package/dist/packages/project/interf-scaffold.js +12 -12
  151. package/dist/packages/project/lib/schema.d.ts +193 -0
  152. package/dist/packages/project/lib/schema.js +46 -1
  153. package/dist/packages/project/source-config.js +6 -1
  154. package/dist/packages/project/source-folders.js +1 -1
  155. package/package.json +12 -23
  156. package/public-repo/CONTRIBUTING.md +47 -0
  157. package/public-repo/LICENSE.md +1 -0
  158. package/public-repo/README.md +325 -0
  159. package/public-repo/SECURITY.md +67 -0
  160. package/public-repo/TRADEMARKS.md +8 -0
  161. package/{builtin-methods → public-repo/methods}/interf-default/README.md +10 -7
  162. package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/shape/SKILL.md +4 -8
  163. package/{builtin-methods → public-repo/methods}/interf-default/method.json +8 -69
  164. package/public-repo/methods/interf-default/method.schema.json +75 -0
  165. package/public-repo/methods/interf-default/use/query/SKILL.md +23 -0
  166. package/public-repo/plugins/README.md +9 -0
  167. package/public-repo/plugins/interf/.claude-plugin/plugin.json +21 -0
  168. package/public-repo/plugins/interf/.mcp.json +12 -0
  169. package/public-repo/plugins/interf/README.md +29 -0
  170. package/public-repo/plugins/interf/skills/interf/SKILL.md +477 -0
  171. package/public-repo/skills/interf/SKILL.md +477 -0
  172. package/agent-skills/interf-actions/SKILL.md +0 -185
  173. package/agent-skills/interf-actions/references/cli.md +0 -243
  174. package/builtin-methods/interf-default/method.schema.json +0 -73
  175. package/builtin-methods/interf-default/use/query/SKILL.md +0 -28
  176. package/dist/cli/commands/verify.d.ts +0 -8
  177. package/dist/compiler-ui/_next/static/chunks/06yhdspx~ca5-.js +0 -5
  178. package/dist/compiler-ui/_next/static/chunks/06z~l3kwb891e.js +0 -1
  179. package/dist/compiler-ui/_next/static/chunks/08g7lvje.te.u.js +0 -1
  180. package/dist/compiler-ui/_next/static/chunks/0_i-3_5l9t2qe.js +0 -1
  181. package/dist/compiler-ui/_next/static/chunks/0b-ywny_j0g~0.js +0 -1
  182. package/dist/compiler-ui/_next/static/chunks/0b52v41o1gixx.js +0 -1
  183. package/dist/compiler-ui/_next/static/chunks/0gpzgsv0w.q~m.js +0 -31
  184. package/dist/compiler-ui/_next/static/chunks/0ilwfezfvu6~-.js +0 -1
  185. package/dist/compiler-ui/_next/static/chunks/0jipmpez3_ehh.js +0 -89
  186. package/dist/compiler-ui/_next/static/chunks/0xxmf45eskdt~.css +0 -1
  187. package/dist/compiler-ui/_next/static/chunks/13awzu4tooflw.css +0 -3
  188. package/dist/compiler-ui/_next/static/chunks/14wtz~vq25~qq.js +0 -1
  189. package/dist/packages/engine/compile/runtime-acceptance.d.ts +0 -9
  190. package/dist/packages/engine/compile/runtime-acceptance.js +0 -265
  191. /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_buildManifest.js +0 -0
  192. /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_clientMiddlewareManifest.js +0 -0
  193. /package/dist/compiler-ui/_next/static/{a3UiUF0DiMEbfWy_0gihg → tYHMLL9oKds1yDoNYgkPV}/_ssgManifest.js +0 -0
  194. /package/dist/packages/engine/verify/{test-paths.js → verify-paths.js} +0 -0
  195. /package/dist/packages/engine/verify/{test-profile-presets.d.ts → verify-profile-presets.d.ts} +0 -0
  196. /package/dist/packages/engine/verify/{test-profile-presets.js → verify-profile-presets.js} +0 -0
  197. /package/dist/packages/engine/verify/{test-sandbox.js → verify-sandbox.js} +0 -0
  198. /package/dist/packages/engine/verify/{test-targets.js → verify-targets.js} +0 -0
  199. /package/dist/packages/engine/verify/{test-types.d.ts → verify-types.d.ts} +0 -0
  200. /package/dist/packages/engine/verify/{test-types.js → verify-types.js} +0 -0
  201. /package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/structure/SKILL.md +0 -0
  202. /package/{builtin-methods → public-repo/methods}/interf-default/compile/stages/summarize/SKILL.md +0 -0
  203. /package/{builtin-methods → public-repo/methods}/interf-default/improve/SKILL.md +0 -0
@@ -14,6 +14,95 @@ export declare const SourceReadinessCheckSchema: z.ZodObject<{
14
14
  }, z.core.$strip>>;
15
15
  strictness: z.ZodOptional<z.ZodString>;
16
16
  }, z.core.$strict>;
17
+ export declare const RequestedArtifactCheckSchema: z.ZodObject<{
18
+ label: z.ZodString;
19
+ }, z.core.$loose>;
20
+ export declare const RequestedArtifactOutputSchema: z.ZodObject<{
21
+ path: z.ZodOptional<z.ZodString>;
22
+ shape: z.ZodOptional<z.ZodObject<{
23
+ kind: z.ZodLiteral<"path">;
24
+ path: z.ZodString;
25
+ artifact_kind: z.ZodEnum<{
26
+ file: "file";
27
+ directory: "directory";
28
+ }>;
29
+ }, z.core.$strict>>;
30
+ checks: z.ZodDefault<z.ZodArray<z.ZodObject<{
31
+ id: z.ZodString;
32
+ kind: z.ZodEnum<{
33
+ file_exists: "file_exists";
34
+ min_file_count: "min_file_count";
35
+ min_file_count_matches_source: "min_file_count_matches_source";
36
+ frontmatter_valid: "frontmatter_valid";
37
+ frontmatter_required_keys: "frontmatter_required_keys";
38
+ wikilinks_valid: "wikilinks_valid";
39
+ must_not_contain: "must_not_contain";
40
+ must_contain: "must_contain";
41
+ qa_match: "qa_match";
42
+ }>;
43
+ description: z.ZodOptional<z.ZodString>;
44
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
45
+ required: z.ZodDefault<z.ZodBoolean>;
46
+ }, z.core.$strict>>>;
47
+ stage_hint: z.ZodOptional<z.ZodString>;
48
+ }, z.core.$strict>;
49
+ export declare const RequestedArtifactSchema: z.ZodPreprocess<z.ZodObject<{
50
+ id: z.ZodOptional<z.ZodString>;
51
+ title: z.ZodString;
52
+ purpose: z.ZodOptional<z.ZodString>;
53
+ description: z.ZodOptional<z.ZodString>;
54
+ checks: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
55
+ label: z.ZodString;
56
+ }, z.core.$loose>]>>>;
57
+ output: z.ZodOptional<z.ZodObject<{
58
+ path: z.ZodOptional<z.ZodString>;
59
+ shape: z.ZodOptional<z.ZodObject<{
60
+ kind: z.ZodLiteral<"path">;
61
+ path: z.ZodString;
62
+ artifact_kind: z.ZodEnum<{
63
+ file: "file";
64
+ directory: "directory";
65
+ }>;
66
+ }, z.core.$strict>>;
67
+ checks: z.ZodDefault<z.ZodArray<z.ZodObject<{
68
+ id: z.ZodString;
69
+ kind: z.ZodEnum<{
70
+ file_exists: "file_exists";
71
+ min_file_count: "min_file_count";
72
+ min_file_count_matches_source: "min_file_count_matches_source";
73
+ frontmatter_valid: "frontmatter_valid";
74
+ frontmatter_required_keys: "frontmatter_required_keys";
75
+ wikilinks_valid: "wikilinks_valid";
76
+ must_not_contain: "must_not_contain";
77
+ must_contain: "must_contain";
78
+ qa_match: "qa_match";
79
+ }>;
80
+ description: z.ZodOptional<z.ZodString>;
81
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
82
+ required: z.ZodDefault<z.ZodBoolean>;
83
+ }, z.core.$strict>>>;
84
+ stage_hint: z.ZodOptional<z.ZodString>;
85
+ }, z.core.$strict>>;
86
+ }, z.core.$strict>>;
87
+ export declare const SourceProfileItemSchema: z.ZodObject<{
88
+ name: z.ZodOptional<z.ZodString>;
89
+ path: z.ZodOptional<z.ZodString>;
90
+ kind: z.ZodOptional<z.ZodString>;
91
+ page_count: z.ZodOptional<z.ZodNumber>;
92
+ note: z.ZodOptional<z.ZodString>;
93
+ }, z.core.$loose>;
94
+ export declare const SourceProfileSchema: z.ZodObject<{
95
+ summary: z.ZodOptional<z.ZodString>;
96
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
97
+ name: z.ZodOptional<z.ZodString>;
98
+ path: z.ZodOptional<z.ZodString>;
99
+ kind: z.ZodOptional<z.ZodString>;
100
+ page_count: z.ZodOptional<z.ZodNumber>;
101
+ note: z.ZodOptional<z.ZodString>;
102
+ }, z.core.$loose>>>;
103
+ observations: z.ZodDefault<z.ZodArray<z.ZodString>>;
104
+ limitations: z.ZodDefault<z.ZodArray<z.ZodString>>;
105
+ }, z.core.$loose>;
17
106
  export declare const SourcePreparationConfigSchema: z.ZodObject<{
18
107
  id: z.ZodOptional<z.ZodString>;
19
108
  name: z.ZodString;
@@ -35,6 +124,56 @@ export declare const SourcePreparationConfigSchema: z.ZodObject<{
35
124
  }, z.core.$strip>>;
36
125
  strictness: z.ZodOptional<z.ZodString>;
37
126
  }, z.core.$strict>>>;
127
+ requested_artifacts: z.ZodOptional<z.ZodArray<z.ZodPreprocess<z.ZodObject<{
128
+ id: z.ZodOptional<z.ZodString>;
129
+ title: z.ZodString;
130
+ purpose: z.ZodOptional<z.ZodString>;
131
+ description: z.ZodOptional<z.ZodString>;
132
+ checks: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
133
+ label: z.ZodString;
134
+ }, z.core.$loose>]>>>;
135
+ output: z.ZodOptional<z.ZodObject<{
136
+ path: z.ZodOptional<z.ZodString>;
137
+ shape: z.ZodOptional<z.ZodObject<{
138
+ kind: z.ZodLiteral<"path">;
139
+ path: z.ZodString;
140
+ artifact_kind: z.ZodEnum<{
141
+ file: "file";
142
+ directory: "directory";
143
+ }>;
144
+ }, z.core.$strict>>;
145
+ checks: z.ZodDefault<z.ZodArray<z.ZodObject<{
146
+ id: z.ZodString;
147
+ kind: z.ZodEnum<{
148
+ file_exists: "file_exists";
149
+ min_file_count: "min_file_count";
150
+ min_file_count_matches_source: "min_file_count_matches_source";
151
+ frontmatter_valid: "frontmatter_valid";
152
+ frontmatter_required_keys: "frontmatter_required_keys";
153
+ wikilinks_valid: "wikilinks_valid";
154
+ must_not_contain: "must_not_contain";
155
+ must_contain: "must_contain";
156
+ qa_match: "qa_match";
157
+ }>;
158
+ description: z.ZodOptional<z.ZodString>;
159
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
160
+ required: z.ZodDefault<z.ZodBoolean>;
161
+ }, z.core.$strict>>>;
162
+ stage_hint: z.ZodOptional<z.ZodString>;
163
+ }, z.core.$strict>>;
164
+ }, z.core.$strict>>>>;
165
+ source_profile: z.ZodOptional<z.ZodObject<{
166
+ summary: z.ZodOptional<z.ZodString>;
167
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
168
+ name: z.ZodOptional<z.ZodString>;
169
+ path: z.ZodOptional<z.ZodString>;
170
+ kind: z.ZodOptional<z.ZodString>;
171
+ page_count: z.ZodOptional<z.ZodNumber>;
172
+ note: z.ZodOptional<z.ZodString>;
173
+ }, z.core.$loose>>>;
174
+ observations: z.ZodDefault<z.ZodArray<z.ZodString>>;
175
+ limitations: z.ZodDefault<z.ZodArray<z.ZodString>>;
176
+ }, z.core.$loose>>;
38
177
  }, z.core.$strict>;
39
178
  export declare const SourceFolderBindingSchema: z.ZodObject<{
40
179
  path: z.ZodString;
@@ -124,10 +263,64 @@ export declare const SourceFolderConfigSchema: z.ZodObject<{
124
263
  }, z.core.$strip>>;
125
264
  strictness: z.ZodOptional<z.ZodString>;
126
265
  }, z.core.$strict>>>;
266
+ requested_artifacts: z.ZodOptional<z.ZodArray<z.ZodPreprocess<z.ZodObject<{
267
+ id: z.ZodOptional<z.ZodString>;
268
+ title: z.ZodString;
269
+ purpose: z.ZodOptional<z.ZodString>;
270
+ description: z.ZodOptional<z.ZodString>;
271
+ checks: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
272
+ label: z.ZodString;
273
+ }, z.core.$loose>]>>>;
274
+ output: z.ZodOptional<z.ZodObject<{
275
+ path: z.ZodOptional<z.ZodString>;
276
+ shape: z.ZodOptional<z.ZodObject<{
277
+ kind: z.ZodLiteral<"path">;
278
+ path: z.ZodString;
279
+ artifact_kind: z.ZodEnum<{
280
+ file: "file";
281
+ directory: "directory";
282
+ }>;
283
+ }, z.core.$strict>>;
284
+ checks: z.ZodDefault<z.ZodArray<z.ZodObject<{
285
+ id: z.ZodString;
286
+ kind: z.ZodEnum<{
287
+ file_exists: "file_exists";
288
+ min_file_count: "min_file_count";
289
+ min_file_count_matches_source: "min_file_count_matches_source";
290
+ frontmatter_valid: "frontmatter_valid";
291
+ frontmatter_required_keys: "frontmatter_required_keys";
292
+ wikilinks_valid: "wikilinks_valid";
293
+ must_not_contain: "must_not_contain";
294
+ must_contain: "must_contain";
295
+ qa_match: "qa_match";
296
+ }>;
297
+ description: z.ZodOptional<z.ZodString>;
298
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
299
+ required: z.ZodDefault<z.ZodBoolean>;
300
+ }, z.core.$strict>>>;
301
+ stage_hint: z.ZodOptional<z.ZodString>;
302
+ }, z.core.$strict>>;
303
+ }, z.core.$strict>>>>;
304
+ source_profile: z.ZodOptional<z.ZodObject<{
305
+ summary: z.ZodOptional<z.ZodString>;
306
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
307
+ name: z.ZodOptional<z.ZodString>;
308
+ path: z.ZodOptional<z.ZodString>;
309
+ kind: z.ZodOptional<z.ZodString>;
310
+ page_count: z.ZodOptional<z.ZodNumber>;
311
+ note: z.ZodOptional<z.ZodString>;
312
+ }, z.core.$loose>>>;
313
+ observations: z.ZodDefault<z.ZodArray<z.ZodString>>;
314
+ limitations: z.ZodDefault<z.ZodArray<z.ZodString>>;
315
+ }, z.core.$loose>>;
127
316
  }, z.core.$strict>>>;
128
317
  }, z.core.$strict>;
129
318
  export type SourceFolderBinding = z.infer<typeof SourceFolderBindingSchema>;
319
+ export type RequestedArtifactCheck = z.infer<typeof RequestedArtifactCheckSchema>;
320
+ export type RequestedArtifact = z.infer<typeof RequestedArtifactSchema>;
321
+ export type RequestedArtifactOutput = z.infer<typeof RequestedArtifactOutputSchema>;
130
322
  export type SourceReadinessCheck = z.infer<typeof SourceReadinessCheckSchema>;
323
+ export type SourceProfile = z.infer<typeof SourceProfileSchema>;
131
324
  export type PreparationName = z.infer<typeof PreparationNameSchema>;
132
325
  export type MethodId = z.infer<typeof MethodIdSchema>;
133
326
  export type SourcePreparationConfig = z.infer<typeof SourcePreparationConfigSchema>;
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { isAbsolute, normalize } from "node:path";
3
- import { InterfIdPattern, MethodIdSchema, PreparationNameSchema, SourceCompiledMaxAttemptsSchema, SourceCompiledMaxLoopsSchema, TestCaseExpectSchema, } from "../../contracts/lib/schema.js";
3
+ import { ArtifactPathShapeSchema, CheckSchema, InterfIdPattern, MethodIdSchema, PreparationNameSchema, SourceCompiledMaxAttemptsSchema, SourceCompiledMaxLoopsSchema, TestCaseExpectSchema, } from "../../contracts/lib/schema.js";
4
4
  export { MethodIdSchema, PreparationNameSchema, } from "../../contracts/lib/schema.js";
5
5
  /**
6
6
  * Absolute paths that an attacker-controlled config must never reach. The
@@ -45,6 +45,49 @@ export const SourceReadinessCheckSchema = z.object({
45
45
  });
46
46
  }
47
47
  });
48
+ export const RequestedArtifactCheckSchema = z.object({
49
+ label: z.string().min(1),
50
+ }).passthrough();
51
+ export const RequestedArtifactOutputSchema = z.object({
52
+ path: z.string().min(1).optional(),
53
+ shape: ArtifactPathShapeSchema.optional(),
54
+ checks: z.array(CheckSchema).default([]),
55
+ stage_hint: z.string().min(1).optional(),
56
+ }).strict();
57
+ const RequestedArtifactObjectSchema = z.object({
58
+ id: z.string().min(1).optional(),
59
+ title: z.string().min(1),
60
+ purpose: z.string().min(1).optional(),
61
+ description: z.string().min(1).optional(),
62
+ checks: z.array(z.union([z.string().min(1), RequestedArtifactCheckSchema])).default([]),
63
+ output: RequestedArtifactOutputSchema.optional(),
64
+ }).strict();
65
+ export const RequestedArtifactSchema = z.preprocess((value) => {
66
+ if (!value || typeof value !== "object" || Array.isArray(value))
67
+ return value;
68
+ const record = value;
69
+ if (typeof record.title === "string" && record.title.trim().length > 0)
70
+ return value;
71
+ const title = typeof record.label === "string"
72
+ ? record.label
73
+ : typeof record.name === "string"
74
+ ? record.name
75
+ : null;
76
+ return title ? { ...record, title } : value;
77
+ }, RequestedArtifactObjectSchema);
78
+ export const SourceProfileItemSchema = z.object({
79
+ name: z.string().min(1).optional(),
80
+ path: z.string().min(1).optional(),
81
+ kind: z.string().min(1).optional(),
82
+ page_count: z.number().int().nonnegative().optional(),
83
+ note: z.string().min(1).optional(),
84
+ }).passthrough();
85
+ export const SourceProfileSchema = z.object({
86
+ summary: z.string().min(1).optional(),
87
+ items: z.array(SourceProfileItemSchema).default([]),
88
+ observations: z.array(z.string().min(1)).default([]),
89
+ limitations: z.array(z.string().min(1)).default([]),
90
+ }).passthrough();
48
91
  export const SourcePreparationConfigSchema = z.object({
49
92
  id: z.string().regex(InterfIdPattern).optional(),
50
93
  name: PreparationNameSchema,
@@ -62,6 +105,8 @@ export const SourcePreparationConfigSchema = z.object({
62
105
  max_attempts: SourceCompiledMaxAttemptsSchema.optional(),
63
106
  max_loops: SourceCompiledMaxLoopsSchema.optional(),
64
107
  checks: z.array(SourceReadinessCheckSchema).default([]),
108
+ requested_artifacts: z.array(RequestedArtifactSchema).optional(),
109
+ source_profile: SourceProfileSchema.optional(),
65
110
  }).strict();
66
111
  export const SourceFolderBindingSchema = z.object({
67
112
  path: z.string().min(1),
@@ -128,6 +128,10 @@ function toWritableSourcePreparationConfig(preparation) {
128
128
  ...(typeof preparation.max_attempts === "number" ? { max_attempts: preparation.max_attempts } : {}),
129
129
  ...(typeof preparation.max_loops === "number" ? { max_loops: preparation.max_loops } : {}),
130
130
  checks: preparation.checks,
131
+ ...(preparation.requested_artifacts?.length
132
+ ? { requested_artifacts: preparation.requested_artifacts }
133
+ : {}),
134
+ ...(preparation.source_profile ? { source_profile: preparation.source_profile } : {}),
131
135
  };
132
136
  }
133
137
  export function saveSourceFolderConfig(prepDataDir, config) {
@@ -241,7 +245,8 @@ export function saveCompiledInterfConfig(compiledPath, config) {
241
245
  export function syncCompiledInterfConfigFromSourcePreparationConfig(compiledPath, preparationConfig) {
242
246
  const current = readInterfConfig(compiledPath);
243
247
  const prepDataDir = resolveSourceControlPathForCompiled(compiledPath);
244
- const preparationAbsolutePath = resolveSourcePreparationPath(prepDataDir, preparationConfig);
248
+ const preparationAbsolutePath = resolveConfiguredSourceFolderPath(prepDataDir) ??
249
+ resolveSourcePreparationPath(prepDataDir, preparationConfig);
245
250
  const preparationRelativePath = relative(compiledPath, preparationAbsolutePath).split(sep).join("/") || ".";
246
251
  const methodId = methodIdForSourcePreparationConfig(preparationConfig)
247
252
  ?? methodIdForSourcePreparationConfig(current)
@@ -47,7 +47,7 @@ export function normalizeSourcePreparationPathForConfig(prepDataDir, value) {
47
47
  const resolvedPath = resolveSourcePreparationPath(prepDataDir, { path: trimmedValue });
48
48
  const relativePath = relative(prepDataDir, resolvedPath).split(sep).join("/") || ".";
49
49
  if (relativePath === ".") {
50
- throw new Error("Pick a Source Folder, not the Interf Workspace itself.");
50
+ throw new Error("Pick a Source Folder, not the Interf preparation data folder itself.");
51
51
  }
52
52
  if (isAbsolute(trimmedValue) && !isPathWithinRoot(prepDataDir, resolvedPath)) {
53
53
  if (!existsSync(resolvedPath)) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@interf/compiler",
3
- "version": "0.16.0",
4
- "description": "Interf prepares data for agent work. It runs locally, processes your files, shows evidence that your data is ready, and writes portable context: a local folder with verifiable outputs agents can use.",
3
+ "version": "0.21.0",
4
+ "description": "Interf compiles source files into verifiable Artifacts and writes portable context agents can read.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "interf": "dist/bin.js"
@@ -14,28 +14,16 @@
14
14
  "types": "./dist/index.d.ts",
15
15
  "import": "./dist/index.js"
16
16
  },
17
- "./contracts": {
18
- "types": "./dist/packages/contracts/index.d.ts",
19
- "import": "./dist/packages/contracts/index.js"
20
- },
21
- "./execution": {
22
- "types": "./dist/packages/engine/execution/index.d.ts",
23
- "import": "./dist/packages/engine/execution/index.js"
24
- },
25
- "./local-service": {
26
- "types": "./dist/packages/engine/index.d.ts",
27
- "import": "./dist/packages/engine/index.js"
28
- },
29
17
  "./package.json": "./package.json"
30
18
  },
31
19
  "scripts": {
32
20
  "build": "node -e \"require('fs').rmSync('dist',{recursive:true,force:true});require('fs').rmSync('.tsbuildinfo',{force:true})\" && tsc && chmod 755 dist/bin.js",
33
21
  "dev": "tsc --watch",
34
- "web:dev": "npm --prefix apps/compiler-ui run dev",
35
- "web:typecheck": "npm --prefix apps/compiler-ui run typecheck",
22
+ "web:dev": "npm --prefix src/apps/compiler-ui run dev",
23
+ "web:typecheck": "npm --prefix src/apps/compiler-ui run typecheck",
36
24
  "web:build": "node scripts/web/build-compiler-ui.mjs",
37
- "docs:sync-agent-skill-cli-reference": "npm run build && node scripts/docs/sync-agent-skill-cli-reference.mjs",
38
- "docs:check-agent-skill-cli-reference": "npm run build && node scripts/docs/sync-agent-skill-cli-reference.mjs --check",
25
+ "docs:sync-public": "node scripts/docs/sync-public-repo.mjs",
26
+ "docs:check-public": "node scripts/docs/sync-public-repo.mjs --check",
39
27
  "test:smoke": "npm run build && node --test test/**/*.test.mjs",
40
28
  "test": "npm run test:smoke",
41
29
  "test:full": "npm test && npm run web:build",
@@ -52,8 +40,8 @@
52
40
  },
53
41
  "files": [
54
42
  "dist",
55
- "builtin-methods",
56
- "agent-skills",
43
+ "public-repo",
44
+ "LICENSE.md",
57
45
  "TRADEMARKS.md"
58
46
  ],
59
47
  "publishConfig": {
@@ -67,13 +55,14 @@
67
55
  "claude",
68
56
  "codex"
69
57
  ],
70
- "license": "UNLICENSED",
58
+ "license": "SEE LICENSE IN LICENSE.md",
59
+ "author": "Interf Inc.",
71
60
  "repository": {
72
61
  "type": "git",
73
- "url": "git+https://github.com/interf-labs/interf.git"
62
+ "url": "git+https://github.com/interf-labs/compiler.git"
74
63
  },
75
64
  "bugs": {
76
- "url": "https://github.com/interf-labs/interf/issues"
65
+ "url": "https://github.com/interf-labs/compiler/issues"
77
66
  },
78
67
  "homepage": "https://interf.com",
79
68
  "engines": {
@@ -0,0 +1,47 @@
1
+ # Contributing
2
+
3
+ This public surface contains the files users and agent hosts need to inspect:
4
+ the README, license and security docs, bundled Skills, plugin manifests, and
5
+ public Method packages.
6
+
7
+ The Interf engine source is private. Do not add private source paths,
8
+ maintainer docs, or internal repo instructions here.
9
+
10
+ ## What To Change Here
11
+
12
+ - Public product docs: `README.md`, `SECURITY.md`, `TRADEMARKS.md`.
13
+ - Agent Skills: `skills/interf/`.
14
+ - Host plugin bundles: `plugins/`.
15
+ - Public Method packages: `methods/`.
16
+
17
+ ## Public Method Packages
18
+
19
+ Method packages are inspectable folders. Keep them standalone:
20
+
21
+ - `method.json` declares the Build Plan stages and Artifact outputs.
22
+ - `method.schema.json` declares the output contract.
23
+ - `compile/stages/<stage>/SKILL.md` contains stage instructions.
24
+ - `use/query/SKILL.md` tells agents how to read the portable context.
25
+ - `improve/SKILL.md` tells Interf how to revise the plan when checks fail.
26
+
27
+ For the shipped default Method, edit `methods/interf-default/`.
28
+
29
+ ## Agent Skills And Plugins
30
+
31
+ Keep `skills/interf/SKILL.md` as the canonical Skill.
32
+
33
+ Plugin bundles should stay thin:
34
+
35
+ - host manifest
36
+ - copied Interf Skill when the host requires a local copy
37
+ - MCP configuration that launches `interf mcp`
38
+
39
+ The MCP server implementation ships inside `@interf/compiler`.
40
+
41
+ ## Before Opening A PR
42
+
43
+ Check that public docs do not reference private paths such as internal source
44
+ trees, maintainer-only docs, or local machine paths.
45
+
46
+ If you changed a Method package, test it with an installed `@interf/compiler`
47
+ runtime before submitting the change.
@@ -0,0 +1 @@
1
+ © 2026 Interf Inc. All rights reserved. Use is subject to Interf's [Commercial Terms of Service](https://interf.com/legal/commercial-terms).