@vibe-agent-toolkit/agent-skills 0.1.39-rc.8 → 0.1.39

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 (108) hide show
  1. package/dist/files-config.d.ts +61 -0
  2. package/dist/files-config.d.ts.map +1 -1
  3. package/dist/files-config.js +262 -6
  4. package/dist/files-config.js.map +1 -1
  5. package/dist/index.d.ts +4 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/plugin-distribution-layout.d.ts +70 -0
  10. package/dist/plugin-distribution-layout.d.ts.map +1 -0
  11. package/dist/plugin-distribution-layout.js +97 -0
  12. package/dist/plugin-distribution-layout.js.map +1 -0
  13. package/dist/skill-packager.d.ts +43 -1
  14. package/dist/skill-packager.d.ts.map +1 -1
  15. package/dist/skill-packager.js +131 -53
  16. package/dist/skill-packager.js.map +1 -1
  17. package/dist/skill-source/git-clone.d.ts +2 -2
  18. package/dist/skill-source/git-clone.d.ts.map +1 -1
  19. package/dist/skill-source/git-clone.js +33 -10
  20. package/dist/skill-source/git-clone.js.map +1 -1
  21. package/dist/skill-source/sources/url-source.d.ts.map +1 -1
  22. package/dist/skill-source/sources/url-source.js +23 -8
  23. package/dist/skill-source/sources/url-source.js.map +1 -1
  24. package/dist/skill-source/sources/workspace-source.d.ts.map +1 -1
  25. package/dist/skill-source/sources/workspace-source.js +16 -8
  26. package/dist/skill-source/sources/workspace-source.js.map +1 -1
  27. package/dist/skill-source/stage.js +6 -2
  28. package/dist/skill-source/stage.js.map +1 -1
  29. package/dist/skill-test/build-hook.d.ts +58 -0
  30. package/dist/skill-test/build-hook.d.ts.map +1 -0
  31. package/dist/skill-test/build-hook.js +63 -0
  32. package/dist/skill-test/build-hook.js.map +1 -0
  33. package/dist/skill-test/configure-writer.d.ts +19 -11
  34. package/dist/skill-test/configure-writer.d.ts.map +1 -1
  35. package/dist/skill-test/configure-writer.js +23 -15
  36. package/dist/skill-test/configure-writer.js.map +1 -1
  37. package/dist/skill-test/declared-env.d.ts +72 -0
  38. package/dist/skill-test/declared-env.d.ts.map +1 -0
  39. package/dist/skill-test/declared-env.js +85 -0
  40. package/dist/skill-test/declared-env.js.map +1 -0
  41. package/dist/skill-test/eval-inputs.d.ts +159 -0
  42. package/dist/skill-test/eval-inputs.d.ts.map +1 -0
  43. package/dist/skill-test/eval-inputs.js +158 -0
  44. package/dist/skill-test/eval-inputs.js.map +1 -0
  45. package/dist/skill-test/evals-template.d.ts.map +1 -1
  46. package/dist/skill-test/evals-template.js +27 -10
  47. package/dist/skill-test/evals-template.js.map +1 -1
  48. package/dist/skill-test/exit-codes.d.ts +44 -5
  49. package/dist/skill-test/exit-codes.d.ts.map +1 -1
  50. package/dist/skill-test/exit-codes.js +63 -9
  51. package/dist/skill-test/exit-codes.js.map +1 -1
  52. package/dist/skill-test/experimenter-prompt.d.ts +22 -0
  53. package/dist/skill-test/experimenter-prompt.d.ts.map +1 -1
  54. package/dist/skill-test/experimenter-prompt.js +39 -2
  55. package/dist/skill-test/experimenter-prompt.js.map +1 -1
  56. package/dist/skill-test/grading-adapter.d.ts +42 -0
  57. package/dist/skill-test/grading-adapter.d.ts.map +1 -1
  58. package/dist/skill-test/grading-adapter.js +63 -1
  59. package/dist/skill-test/grading-adapter.js.map +1 -1
  60. package/dist/skill-test/grading-schema.d.ts +73 -5
  61. package/dist/skill-test/grading-schema.d.ts.map +1 -1
  62. package/dist/skill-test/grading-schema.js +20 -5
  63. package/dist/skill-test/grading-schema.js.map +1 -1
  64. package/dist/skill-test/harness-location.d.ts +35 -4
  65. package/dist/skill-test/harness-location.d.ts.map +1 -1
  66. package/dist/skill-test/harness-location.js +111 -16
  67. package/dist/skill-test/harness-location.js.map +1 -1
  68. package/dist/skill-test/index.d.ts +7 -4
  69. package/dist/skill-test/index.d.ts.map +1 -1
  70. package/dist/skill-test/index.js +7 -4
  71. package/dist/skill-test/index.js.map +1 -1
  72. package/dist/skill-test/lock.d.ts +23 -0
  73. package/dist/skill-test/lock.d.ts.map +1 -1
  74. package/dist/skill-test/lock.js +35 -1
  75. package/dist/skill-test/lock.js.map +1 -1
  76. package/dist/skill-test/plugin-env.d.ts +20 -0
  77. package/dist/skill-test/plugin-env.d.ts.map +1 -0
  78. package/dist/skill-test/plugin-env.js +24 -0
  79. package/dist/skill-test/plugin-env.js.map +1 -0
  80. package/dist/skill-test/plugin-layout.d.ts +41 -0
  81. package/dist/skill-test/plugin-layout.d.ts.map +1 -0
  82. package/dist/skill-test/plugin-layout.js +49 -0
  83. package/dist/skill-test/plugin-layout.js.map +1 -0
  84. package/dist/skill-test/preflight.d.ts.map +1 -1
  85. package/dist/skill-test/preflight.js +1 -2
  86. package/dist/skill-test/preflight.js.map +1 -1
  87. package/dist/skill-test/run-harness.d.ts +197 -11
  88. package/dist/skill-test/run-harness.d.ts.map +1 -1
  89. package/dist/skill-test/run-harness.js +401 -65
  90. package/dist/skill-test/run-harness.js.map +1 -1
  91. package/dist/skill-test/staging.d.ts +20 -1
  92. package/dist/skill-test/staging.d.ts.map +1 -1
  93. package/dist/skill-test/staging.js +71 -17
  94. package/dist/skill-test/staging.js.map +1 -1
  95. package/dist/skill-test/vendor-manifest.d.ts +3 -3
  96. package/dist/skill-test/vendor-manifest.d.ts.map +1 -1
  97. package/dist/skill-test/vendor-manifest.js +13 -3
  98. package/dist/skill-test/vendor-manifest.js.map +1 -1
  99. package/dist/validators/packaging-validator.d.ts.map +1 -1
  100. package/dist/validators/packaging-validator.js +134 -1
  101. package/dist/validators/packaging-validator.js.map +1 -1
  102. package/dist/validators/skill-validator.d.ts.map +1 -1
  103. package/dist/validators/skill-validator.js +18 -14
  104. package/dist/validators/skill-validator.js.map +1 -1
  105. package/dist/walk-link-graph.d.ts.map +1 -1
  106. package/dist/walk-link-graph.js +26 -1
  107. package/dist/walk-link-graph.js.map +1 -1
  108. package/package.json +6 -5
@@ -8,19 +8,15 @@
8
8
  * → build effective prompt + assertPromptInvariants → dry-run short-circuit
9
9
  * → spawnHeadlessClaude → parseGradingJson → release lock → return result
10
10
  */
11
+ import type { SkillSourceDescriptor } from '@vibe-agent-toolkit/resources';
12
+ import type { ResolveSkillSourceContext, SkillSource } from '../skill-source/types.js';
13
+ import { type SkillTestExitCodeValue } from './exit-codes.js';
14
+ import { type PreflightInput } from './preflight.js';
15
+ import { type StageItem } from './staging.js';
11
16
  /** Auth modes supported by the harness. */
12
17
  export type HarnessAuthMode = 'inherit' | 'subscription' | 'api-key' | 'auto';
13
18
  /** Auth mechanism requirements. */
14
19
  export type HarnessAuthMechanism = 'subscription' | 'api-key';
15
- /** A skill source descriptor (mirrors SkillSource union). */
16
- export interface SkillSourceSpec {
17
- path?: string;
18
- npm?: string;
19
- url?: string;
20
- sha256?: string;
21
- workspace?: string;
22
- vendored?: true;
23
- }
24
20
  export interface RunHarnessOptions {
25
21
  /** Primary skill names (subject set, required). */
26
22
  skills: string[];
@@ -40,9 +36,9 @@ export interface RunHarnessOptions {
40
36
  * Optional additional skill sources mapped by name. If provided, overrides
41
37
  * the default path-based resolution for that skill name.
42
38
  */
43
- withSources?: Record<string, SkillSourceSpec>;
39
+ withSources?: Record<string, SkillSourceDescriptor>;
44
40
  /** Additional optional skills to inject (with-optional). */
45
- withOptional?: Record<string, SkillSourceSpec>;
41
+ withOptional?: Record<string, SkillSourceDescriptor>;
46
42
  /** Override the harness working directory (base for harnessKey derivation). */
47
43
  workdir?: string;
48
44
  /** Override the harness output directory (explicit full path). */
@@ -72,12 +68,202 @@ export interface RunHarnessOptions {
72
68
  timeout?: number;
73
69
  /** Stall watchdog in seconds. */
74
70
  stall?: number;
71
+ /**
72
+ * Pre-resolved source for the subject (skills[0]); set by run.ts after
73
+ * project-aware resolution + build. A built dist dir for a declared skill, or
74
+ * the resolved as-is source. Absent → legacy { path: skills[0] }.
75
+ */
76
+ subjectSource?: SkillSource;
77
+ /**
78
+ * Authored source dir for the subject, where the eval suite (`evals/`, incl.
79
+ * `fixtures/`) is maintained. Used to (a) overlay that suite onto a built/dist
80
+ * subject that doesn't carry it, and (b) write the bootstrap template when no
81
+ * suite exists yet. For a built declared skill this is the SOURCE skill dir,
82
+ * not the dist. Absent → derived from skills[0] (legacy).
83
+ */
84
+ subjectScaffoldDir?: string;
85
+ /**
86
+ * True when run.ts actually rebuilt the subject (declared skill, no
87
+ * --no-build/--dry-run). Recorded in provenance. Absent/false → staged as-is.
88
+ */
89
+ rebuilt?: boolean;
90
+ /**
91
+ * True when the resolved reference is `buildable` — a real run WOULD build +
92
+ * stage it before spawning. False/absent for plain `source` subjects. Set by
93
+ * run.ts after project-aware resolution; used in the dry-run summary.
94
+ */
95
+ wouldBuild?: boolean;
96
+ /**
97
+ * Meaningful only when wouldBuild is true and dryRun is true. True = the
98
+ * dry-run staged the EXISTING on-disk dist without rebuilding (may be stale).
99
+ * False = no dist existed yet so the preview fell back to the source dir.
100
+ * Absent when not a dry-run or when the subject is a plain source.
101
+ */
102
+ dryRunStagedExistingDist?: boolean;
103
+ /** Feature B: explicit env var injections (interpolated at stage time). */
104
+ env?: Record<string, string>;
105
+ /** Feature A: host env var names to forward to the experimenter if present. */
106
+ passEnv?: readonly string[];
107
+ /**
108
+ * Opt-in eval gating. When true and any eval fails, the run returns exit
109
+ * EvalFailure (4) instead of Ok. Default (false/absent): a completed run
110
+ * always returns Ok and the pass/fail count lives only in the summary.
111
+ */
112
+ failOnEvalFailure?: boolean;
75
113
  }
76
114
  export interface RunHarnessResult {
77
115
  harnessPath: string;
78
116
  exitCode: number;
79
117
  summary: string;
80
118
  }
119
+ /**
120
+ * Built-in cost/runtime safety ceilings for the experimenter spawn. These are the
121
+ * SAME values the harness applies as defaults, but exported as an explicit cap so
122
+ * the CLI precedence layer (run.ts) can enforce a critical asymmetry:
123
+ *
124
+ * - a CLI flag (explicit operator intent, typed at the terminal for THIS run)
125
+ * may RAISE a knob above the built-in ceiling;
126
+ * - a value sourced from a committed `test.*` config (which rides along in an
127
+ * untrusted subject repo you may only be testing) may only LOWER a ceiling,
128
+ * never raise it — so cloning + testing a hostile skill can't silently
129
+ * escalate the $5 / 50-turn / 5-minute budget the run bills against.
130
+ *
131
+ * `timeoutSeconds` is expressed in seconds to match the `--timeout`/`test.timeout`
132
+ * unit (the harness multiplies by 1000 internally; see resolveTimeoutMs).
133
+ */
134
+ export declare const SKILL_TEST_BUILTIN_CAPS: {
135
+ readonly maxTurns: 50;
136
+ readonly maxBudgetUsd: 5;
137
+ readonly timeoutSeconds: number;
138
+ };
139
+ export declare function resolveTimeoutMs(opts: RunHarnessOptions): number;
140
+ /**
141
+ * Map an eval verdict to a process exit code. Default behavior: a completed run
142
+ * exits Ok regardless of pass/fail (the count lives in the summary). When
143
+ * `failOnEvalFailure` is set, a failing verdict escalates to EvalFailure (4) so
144
+ * CI can gate on eval outcomes without conflating them with harness breakage.
145
+ */
146
+ export declare function verdictExitCode(allPassed: boolean, failOnEvalFailure: boolean): SkillTestExitCodeValue;
147
+ export declare function resolveStallMs(opts: RunHarnessOptions): number | undefined;
148
+ export declare function resolveKnobs(opts: RunHarnessOptions): {
149
+ model?: string;
150
+ maxTurns: number;
151
+ maxBudgetUsd: number;
152
+ stallMs?: number;
153
+ };
154
+ /**
155
+ * Detect the plugin-root layout for a `{ path }` source. The resolver later COPIES
156
+ * the source into a temp dir (losing its plugin ancestry), so we must detect here
157
+ * — while the true on-disk source dir is still known — by resolving the path spec
158
+ * against repoRoot and walking up for `.claude-plugin/plugin.json`. Non-`{path}`
159
+ * sources (npm/url/vendored/workspace) have no local source tree to walk, so they
160
+ * are always staged flat (returns undefined). undefined → flat staging.
161
+ */
162
+ export declare function detectItemPluginLayout(source: SkillSource, repoRoot: string): StageItem['pluginLayout'] | undefined;
163
+ export declare function makeStageItem(name: string, source: SkillSource, repoRoot: string, role: 'subject' | undefined): StageItem;
164
+ export declare function buildStageItems(opts: RunHarnessOptions, repoRoot: string): StageItem[];
165
+ export declare function buildResolveCtx(harnessRoot: string, repoRoot: string): ResolveSkillSourceContext;
166
+ /**
167
+ * Return a sensible dummy value for a given CLI flag so that value-validation
168
+ * doesn't reject the argument before `--help` can short-circuit the session.
169
+ */
170
+ export declare function flagDummyValueFor(flag: string): string;
171
+ export declare function buildPreflightInput(evalsPath: string, pluginDirs: string[], opts: RunHarnessOptions, knobs: {
172
+ maxBudgetUsd: number;
173
+ }): PreflightInput;
174
+ export declare function renderPreflightSummary(checks: {
175
+ name: string;
176
+ passed: boolean;
177
+ message: string;
178
+ }[]): string;
179
+ /**
180
+ * The single source of truth for "is this run acknowledged?": a dry-run never
181
+ * executes skill code (so it is implicitly acknowledged), otherwise the caller
182
+ * must pass --i-understand-this-runs-skill-code. Narrowed to the two fields it
183
+ * reads so run.ts can reuse the SAME predicate to gate the pre-build ack check
184
+ * (the harness Step-6 check and the run.ts pre-build check cannot diverge).
185
+ */
186
+ export declare function isAcknowledged(opts: Pick<RunHarnessOptions, 'dryRun' | 'acknowledgedRunsSkillCode'>): boolean;
187
+ /**
188
+ * Translate a non-success spawn outcome into an InternalHarnessError (exit 1).
189
+ * A stall, a timeout, OR a non-zero exit are each authoritative — a non-zero exit
190
+ * is never laundered into a PASS even if a grading.json happens to be on disk.
191
+ */
192
+ export declare function assertExperimenterSucceeded(spawnResult: {
193
+ stalled: boolean;
194
+ timedOut: boolean;
195
+ status: number;
196
+ }, stallMs: number | undefined, timeoutMs: number): void;
197
+ /**
198
+ * Resolve the PERSISTENT location where a bootstrap scaffold should be written
199
+ * so "fill it in and re-run" actually works for the user (the staged copy is
200
+ * ephemeral). When the subject is a local `{path}` source we scaffold next to
201
+ * that real source dir; otherwise we anchor under the repo root by skill name.
202
+ */
203
+ /** The subject skill's display name (trailing segment of the positional skill arg). */
204
+ export declare function subjectSkillName(opts: RunHarnessOptions): string;
205
+ export declare function resolveScaffoldEvalsPath(opts: RunHarnessOptions, repoRoot: string, evalsSubpath: string): string;
206
+ /** Parse the staged eval suite and materialize each eval's input `files` into
207
+ * `<harnessRoot>/workspaces/<id>/`. Returns the workspaces root. The dir is wiped
208
+ * first so a reused harness root cannot leak a prior run's inputs. Throws
209
+ * {@link EvalInputError} (mapped by the caller to exit 2) on a bad suite or a
210
+ * missing input file. */
211
+ export declare function stageWorkspacesForRun(evalsPath: string, harnessRoot: string): string;
212
+ /** Inputs for the dry-run summary string. */
213
+ export interface DryRunSummaryInput {
214
+ /** True when the resolved subject is buildable (a real run would build + stage it). */
215
+ wouldBuild: boolean;
216
+ /**
217
+ * When wouldBuild is true: true = the dry-run staged the existing dist without
218
+ * rebuilding (may be stale); false = no dist existed, fell back to source dir.
219
+ */
220
+ dryRunStagedExistingDist?: boolean;
221
+ /** Absolute path to the written provenance.json (already on disk). */
222
+ provenancePath: string;
223
+ /** Content fingerprint from the staged manifest. */
224
+ provenanceFingerprint: string;
225
+ /** Number of entries in the staged manifest. */
226
+ provenanceEntryCount: number;
227
+ /** The assembled model flag string (e.g. `--model claude-opus-4-8`). */
228
+ modelFlag: string;
229
+ }
230
+ /**
231
+ * Build the dry-run summary string. Pure function so it can be unit-tested
232
+ * without running the full harness.
233
+ *
234
+ * The summary covers three scenarios:
235
+ * 1. Declared (buildable) subject — no dist existed, fell back to source dir.
236
+ * 2. Declared (buildable) subject — existing dist was staged WITHOUT rebuilding
237
+ * (potentially stale).
238
+ * 3. Plain source subject — staged as-is, no build step.
239
+ *
240
+ * Always includes the assembled spawn command, the staged-manifest entry count +
241
+ * fingerprint, and the provenance.json path so a stale tree is visible at a glance.
242
+ */
243
+ export declare function buildDryRunSummary(input: DryRunSummaryInput): string;
244
+ export interface CleanupHarnessOptions {
245
+ /** User asked to retain the harness dir (`--keep`) — never remove. */
246
+ keep: boolean;
247
+ /**
248
+ * True only when the harness itself created the dir under the OS tmp dir (no
249
+ * `--out`/`--workdir`). A user-supplied location is theirs to keep, so we only
250
+ * auto-remove the dir we created.
251
+ */
252
+ created: boolean;
253
+ }
254
+ /**
255
+ * Remove the harness directory after a run so staged untrusted skill bytes and
256
+ * prompts do not accumulate in OS tmp. No-op when the user asked to keep it, when
257
+ * the dir is a user-supplied location (`--out`/`--workdir`), or when it is already
258
+ * gone. Idempotent and never throws — it runs from a `finally`, so it must not
259
+ * mask the run's real outcome.
260
+ *
261
+ * SAFETY: re-asserts the root is not a symlink immediately before removal (via
262
+ * `lstat`, which does NOT follow the link). A root swapped to a symlink between
263
+ * the run and cleanup is left in place rather than followed — `rmSync(recursive)`
264
+ * could otherwise delete the symlink's target outside tmp.
265
+ */
266
+ export declare function cleanupHarness(harnessRoot: string, opts: CleanupHarnessOptions): void;
81
267
  /**
82
268
  * Domain orchestrator for `vat skill test run`. Pure of process.exit — all
83
269
  * exit-code decisions live in the caller (run.ts).
@@ -1 +1 @@
1
- {"version":3,"file":"run-harness.d.ts","sourceRoot":"","sources":["../../src/skill-test/run-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoDH,2CAA2C;AAC3C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9E,mCAAmC;AACnC,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,SAAS,CAAC;AAE9D,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE9C,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE/C,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,iEAAiE;IACjE,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,eAAe,CAAC;IAEvB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,oBAAoB,CAAC;IAEnC,wCAAwC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,2DAA2D;IAC3D,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,qEAAqE;IACrE,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAGpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAoND;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiL5F"}
1
+ {"version":3,"file":"run-harness.d.ts","sourceRoot":"","sources":["../../src/skill-test/run-harness.ts"],"names":[],"mappings":"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"}