@punica/editor 1.10.4 → 1.10.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@punica/editor",
3
- "version": "1.10.4",
3
+ "version": "1.10.6",
4
4
  "description": "Punica Editor",
5
5
  "private": false,
6
6
  "type": "module",
@@ -277,9 +277,26 @@ declare module 'punica' {
277
277
  deferToolLoading?: boolean;
278
278
  /**
279
279
  * Size of the fully-loaded hot set when deferred loading is
280
- * active (meta-tools not counted). Default ~16.
280
+ * active (meta-tools not counted). Default 40.
281
281
  */
282
282
  hotSetSize?: number;
283
+ /**
284
+ * Capability ids guaranteed a place in the hot set, whatever the
285
+ * intent ranking says. Exact ids only — no globs, so the substrate
286
+ * needs no matcher and the field stays a plain set union.
287
+ *
288
+ * This is where a product declares its staples: the handful of tools
289
+ * an assistant is expected to reach for in almost any request (open a
290
+ * file, search, read, write). Ranking is a guess about THIS request;
291
+ * pinning is knowledge about the product, and the substrate has none
292
+ * of the latter — it hardcodes no ids and ships no default list.
293
+ *
294
+ * Pinned ids are seated first and COUNT against `hotSetSize`, so
295
+ * pinning cannot silently widen the request's tool budget. Ids that
296
+ * are not in the catalog (extension not installed, filtered by the
297
+ * profile budget) are ignored rather than faked.
298
+ */
299
+ pinnedTools?: string[];
283
300
  /**
284
301
  * Prepend a one-shot workspace orientation (the
285
302
  * `workspace.projectContext` snapshot: stack, dependencies, run
@@ -101,6 +101,43 @@ declare module 'punica' {
101
101
  allowedOrigins?: CapabilityOrigin[];
102
102
  }
103
103
 
104
+ /**
105
+ * Tool selection budget — how many capabilities the agent SEES.
106
+ *
107
+ * Not a permission surface. What may be called stays with
108
+ * `ProfileCapabilityBudget` and the gateway's policy stages; this only
109
+ * decides how many tools travel with full schemas versus as one-line
110
+ * index entries. Widening it cannot grant a profile anything its
111
+ * capability budget denies.
112
+ *
113
+ * Every field is optional: the substrate boots headless with no profile
114
+ * at all, so the kernel owns working defaults and a profile only states
115
+ * where it wants to differ.
116
+ */
117
+ interface ProfileToolSelectionSpec {
118
+ /** Above this many capabilities the catalog is narrowed by intent. */
119
+ narrowThreshold?: number;
120
+ /** Ceiling on the narrowed catalog. */
121
+ catalogTopN?: number;
122
+ /** How many id-namespace categories survive narrowing, kept whole. */
123
+ topCategories?: number;
124
+ /** Tools shipped with full schemas (meta-tools not counted). */
125
+ hotSetSize?: number;
126
+ /**
127
+ * Slots one category may take in the hot set before the fill moves on.
128
+ * Omitted ⇒ derived from `hotSetSize`. Stops one large namespace from
129
+ * consuming the whole hot set.
130
+ */
131
+ perCategoryCap?: number;
132
+ /** How many ranked ids to request from the recommender. */
133
+ rankLimit?: number;
134
+ }
135
+
136
+ /** Agent-facing profile dimension. */
137
+ interface ProfileAgentSpec {
138
+ toolSelection?: ProfileToolSelectionSpec;
139
+ }
140
+
104
141
  /** Layout sub-spec embedded in the profile's shell spec. */
105
142
  interface ProfileLayoutSpec {
106
143
  /**
@@ -254,6 +291,7 @@ declare module 'punica' {
254
291
 
255
292
  // ── v1 optional dimensions (shape declared, not enforced at runtime) ─
256
293
  extensions?: ProfileExtensionsSpec;
294
+ agent?: ProfileAgentSpec;
257
295
  commandPalette?: ProfileCommandPaletteSpec;
258
296
  authoring?: ProfileAuthoringSpec;
259
297
  telemetry?: ProfileTelemetrySpec;
@@ -169,7 +169,18 @@ declare module 'punica' {
169
169
  | 'caption'
170
170
  | 'overline';
171
171
  color?: 'primary' | 'secondary' | 'error';
172
- fontWeight?: 'normal' | 'bold';
172
+ /**
173
+ * The six weights `punica-typography` ships a rule for. `normal` was
174
+ * never one of them, so it resolved to no rule at all; `regular` is
175
+ * the component's spelling for the same intent.
176
+ */
177
+ fontWeight?:
178
+ | 'thin'
179
+ | 'regular'
180
+ | 'medium'
181
+ | 'semi-bold'
182
+ | 'bold'
183
+ | 'extra-bold';
173
184
  style?: Record<string, string> | string;
174
185
  className?: string;
175
186
  attrs?: Record<string, string>;