projscan 2.2.0 → 2.8.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 (78) hide show
  1. package/README.md +51 -21
  2. package/dist/cli/commands/agentBrief.d.ts +1 -0
  3. package/dist/cli/commands/agentBrief.js +68 -0
  4. package/dist/cli/commands/agentBrief.js.map +1 -0
  5. package/dist/cli/commands/bugHunt.d.ts +1 -0
  6. package/dist/cli/commands/bugHunt.js +59 -0
  7. package/dist/cli/commands/bugHunt.js.map +1 -0
  8. package/dist/cli/commands/evidencePack.d.ts +1 -0
  9. package/dist/cli/commands/evidencePack.js +70 -0
  10. package/dist/cli/commands/evidencePack.js.map +1 -0
  11. package/dist/cli/commands/qualityScorecard.d.ts +1 -0
  12. package/dist/cli/commands/qualityScorecard.js +61 -0
  13. package/dist/cli/commands/qualityScorecard.js.map +1 -0
  14. package/dist/cli/commands/regressionPlan.d.ts +1 -0
  15. package/dist/cli/commands/regressionPlan.js +77 -0
  16. package/dist/cli/commands/regressionPlan.js.map +1 -0
  17. package/dist/cli/commands/releaseTrain.d.ts +1 -0
  18. package/dist/cli/commands/releaseTrain.js +58 -0
  19. package/dist/cli/commands/releaseTrain.js.map +1 -0
  20. package/dist/cli/commands/workplan.d.ts +1 -0
  21. package/dist/cli/commands/workplan.js +136 -0
  22. package/dist/cli/commands/workplan.js.map +1 -0
  23. package/dist/cli/index.js +14 -0
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/core/agentBrief.d.ts +6 -0
  26. package/dist/core/agentBrief.js +192 -0
  27. package/dist/core/agentBrief.js.map +1 -0
  28. package/dist/core/bugHunt.d.ts +6 -0
  29. package/dist/core/bugHunt.js +278 -0
  30. package/dist/core/bugHunt.js.map +1 -0
  31. package/dist/core/qualityScorecard.d.ts +6 -0
  32. package/dist/core/qualityScorecard.js +220 -0
  33. package/dist/core/qualityScorecard.js.map +1 -0
  34. package/dist/core/regressionPlan.d.ts +7 -0
  35. package/dist/core/regressionPlan.js +226 -0
  36. package/dist/core/regressionPlan.js.map +1 -0
  37. package/dist/core/releaseEvidence.d.ts +7 -0
  38. package/dist/core/releaseEvidence.js +174 -0
  39. package/dist/core/releaseEvidence.js.map +1 -0
  40. package/dist/core/releaseTrain.d.ts +5 -0
  41. package/dist/core/releaseTrain.js +348 -0
  42. package/dist/core/releaseTrain.js.map +1 -0
  43. package/dist/core/workplan.d.ts +12 -0
  44. package/dist/core/workplan.js +440 -0
  45. package/dist/core/workplan.js.map +1 -0
  46. package/dist/index.d.ts +8 -1
  47. package/dist/index.js +7 -0
  48. package/dist/index.js.map +1 -1
  49. package/dist/mcp/tools/agentBrief.d.ts +2 -0
  50. package/dist/mcp/tools/agentBrief.js +39 -0
  51. package/dist/mcp/tools/agentBrief.js.map +1 -0
  52. package/dist/mcp/tools/bugHunt.d.ts +2 -0
  53. package/dist/mcp/tools/bugHunt.js +31 -0
  54. package/dist/mcp/tools/bugHunt.js.map +1 -0
  55. package/dist/mcp/tools/evidencePack.d.ts +2 -0
  56. package/dist/mcp/tools/evidencePack.js +39 -0
  57. package/dist/mcp/tools/evidencePack.js.map +1 -0
  58. package/dist/mcp/tools/qualityScorecard.d.ts +2 -0
  59. package/dist/mcp/tools/qualityScorecard.js +26 -0
  60. package/dist/mcp/tools/qualityScorecard.js.map +1 -0
  61. package/dist/mcp/tools/regressionPlan.d.ts +2 -0
  62. package/dist/mcp/tools/regressionPlan.js +47 -0
  63. package/dist/mcp/tools/regressionPlan.js.map +1 -0
  64. package/dist/mcp/tools/releaseTrain.d.ts +2 -0
  65. package/dist/mcp/tools/releaseTrain.js +27 -0
  66. package/dist/mcp/tools/releaseTrain.js.map +1 -0
  67. package/dist/mcp/tools/workplan.d.ts +2 -0
  68. package/dist/mcp/tools/workplan.js +70 -0
  69. package/dist/mcp/tools/workplan.js.map +1 -0
  70. package/dist/mcp/tools.js +14 -0
  71. package/dist/mcp/tools.js.map +1 -1
  72. package/dist/projscan-sbom.cdx.json +6 -6
  73. package/dist/tool-manifest.json +196 -3
  74. package/dist/types.d.ts +240 -0
  75. package/dist/utils/formatSupport.d.ts +8 -0
  76. package/dist/utils/formatSupport.js +8 -0
  77. package/dist/utils/formatSupport.js.map +1 -1
  78. package/package.json +4 -4
package/dist/types.d.ts CHANGED
@@ -287,6 +287,246 @@ export interface PreflightReport {
287
287
  toolCalls: PreflightSuggestedAction[];
288
288
  truncated?: boolean;
289
289
  }
290
+ export type WorkplanMode = PreflightMode | 'refactor' | 'release' | 'bug_hunt' | 'hardening';
291
+ export type WorkplanPriority = 'p0' | 'p1' | 'p2';
292
+ export interface WorkplanEvidence {
293
+ source: PreflightReasonSource | 'coordination' | 'release' | 'verification';
294
+ message: string;
295
+ severity?: IssueSeverity;
296
+ file?: string;
297
+ issueId?: string;
298
+ tool?: string;
299
+ }
300
+ export interface WorkplanVerification {
301
+ commands: string[];
302
+ expected: string;
303
+ }
304
+ export interface WorkplanTask {
305
+ id: string;
306
+ priority: WorkplanPriority;
307
+ title: string;
308
+ why: string;
309
+ evidence: WorkplanEvidence[];
310
+ files: string[];
311
+ suggestedTools: string[];
312
+ verification: WorkplanVerification;
313
+ handoffText: string;
314
+ }
315
+ export interface WorkplanTopRisk extends WorkplanEvidence {
316
+ priority: WorkplanPriority;
317
+ }
318
+ export interface WorkplanCoordination {
319
+ touchedFiles: string[];
320
+ conflicts: SessionConflict[];
321
+ recommendedNextAgent: string;
322
+ }
323
+ export interface WorkplanReport {
324
+ schemaVersion: 1;
325
+ mode: WorkplanMode;
326
+ verdict: PreflightVerdict;
327
+ summary: string;
328
+ topRisks: WorkplanTopRisk[];
329
+ tasks: WorkplanTask[];
330
+ coordination: WorkplanCoordination;
331
+ suggestedNextActions: PreflightSuggestedAction[];
332
+ truncated?: boolean;
333
+ }
334
+ export interface ReleaseTrainTrack {
335
+ line: string;
336
+ theme: string;
337
+ outcome: string;
338
+ includedInPlan: boolean;
339
+ scope: string[];
340
+ successCriteria: string[];
341
+ }
342
+ export interface ReleaseTrainTask {
343
+ id: string;
344
+ priority: WorkplanPriority;
345
+ title: string;
346
+ why: string;
347
+ track: string;
348
+ files: string[];
349
+ verification: WorkplanVerification;
350
+ }
351
+ export interface ReleaseTrainReport {
352
+ schemaVersion: 1;
353
+ currentVersion: string | null;
354
+ plan: {
355
+ policy: 'product-readiness-plan';
356
+ lines: string[];
357
+ readOnly: true;
358
+ };
359
+ readiness: {
360
+ verdict: PreflightVerdict;
361
+ blockers: number;
362
+ cautions: number;
363
+ summary: string;
364
+ };
365
+ tracks: ReleaseTrainTrack[];
366
+ tasks: ReleaseTrainTask[];
367
+ suggestedNextActions: PreflightSuggestedAction[];
368
+ }
369
+ export type BugHuntVerdict = 'clean' | 'fix' | 'block';
370
+ export interface BugHuntFinding {
371
+ id: string;
372
+ priority: WorkplanPriority;
373
+ source: 'doctor' | 'preflight' | 'session' | 'hotspot' | 'verification';
374
+ title: string;
375
+ why: string;
376
+ files: string[];
377
+ evidence: WorkplanEvidence[];
378
+ suggestedTools: string[];
379
+ verification: WorkplanVerification;
380
+ }
381
+ export interface BugHuntReport {
382
+ schemaVersion: 1;
383
+ verdict: BugHuntVerdict;
384
+ summary: string;
385
+ health: HealthScore;
386
+ evidence: {
387
+ issueCounts: {
388
+ errors: number;
389
+ warnings: number;
390
+ infos: number;
391
+ };
392
+ hotspotCount: number;
393
+ preflightVerdict: PreflightVerdict;
394
+ touchedFiles: string[];
395
+ conflicts: number;
396
+ };
397
+ topSuspects: BugHuntFinding[];
398
+ fixQueue: BugHuntFinding[];
399
+ verificationMatrix: Array<{
400
+ command: string;
401
+ reason: string;
402
+ expected: string;
403
+ }>;
404
+ truncated?: boolean;
405
+ }
406
+ export type EvidencePackVerdict = 'ready' | 'caution' | 'blocked';
407
+ export type EvidencePackArtifactStatus = 'ready' | 'caution' | 'blocked';
408
+ export interface EvidencePackArtifact {
409
+ id: string;
410
+ title: string;
411
+ status: EvidencePackArtifactStatus;
412
+ summary: string;
413
+ evidence: string[];
414
+ commands: string[];
415
+ }
416
+ export interface EvidencePackReport {
417
+ schemaVersion: 1;
418
+ currentVersion: string | null;
419
+ readOnly: true;
420
+ verdict: EvidencePackVerdict;
421
+ summary: string;
422
+ train: {
423
+ lines: string[];
424
+ readiness: ReleaseTrainReport['readiness'];
425
+ };
426
+ approval: {
427
+ required: true;
428
+ recommendation: string;
429
+ blockingReasons: string[];
430
+ };
431
+ artifacts: EvidencePackArtifact[];
432
+ changelogEntries: string[];
433
+ websitePrompt?: string;
434
+ suggestedNextActions: PreflightSuggestedAction[];
435
+ }
436
+ export type RegressionPlanLevel = 'smoke' | 'focused' | 'full';
437
+ export type RegressionPlanVerdict = 'ready' | 'needs_tests' | 'blocked';
438
+ export interface RegressionPlanTarget {
439
+ id: string;
440
+ priority: WorkplanPriority;
441
+ source: 'baseline' | 'bug-hunt' | 'product-line' | 'preflight';
442
+ title: string;
443
+ why: string;
444
+ files: string[];
445
+ verification: WorkplanVerification;
446
+ }
447
+ export interface RegressionPlanReport {
448
+ schemaVersion: 1;
449
+ level: RegressionPlanLevel;
450
+ verdict: RegressionPlanVerdict;
451
+ summary: string;
452
+ releaseLines: string[];
453
+ evidence: {
454
+ healthScore: number;
455
+ bugHuntVerdict: BugHuntVerdict;
456
+ preflightVerdict: PreflightVerdict;
457
+ changedFiles: number;
458
+ touchedFiles: number;
459
+ };
460
+ targets: RegressionPlanTarget[];
461
+ commands: string[];
462
+ suggestedNextActions: PreflightSuggestedAction[];
463
+ truncated?: boolean;
464
+ }
465
+ export type AgentBriefIntent = 'next_agent' | 'bug_hunt' | 'release' | 'refactor' | 'hardening';
466
+ export interface AgentBriefItem {
467
+ id: string;
468
+ priority: WorkplanPriority;
469
+ title: string;
470
+ why: string;
471
+ files: string[];
472
+ commands: string[];
473
+ }
474
+ export interface AgentBriefGuardrail {
475
+ id: string;
476
+ label: string;
477
+ reason: string;
478
+ command: string;
479
+ }
480
+ export interface AgentBriefReport {
481
+ schemaVersion: 1;
482
+ intent: AgentBriefIntent;
483
+ summary: string;
484
+ health: HealthScore;
485
+ context: {
486
+ totalFiles: number;
487
+ totalDirectories: number;
488
+ topDirectories: Array<{
489
+ directory: string;
490
+ files: number;
491
+ }>;
492
+ touchedFiles: string[];
493
+ conflicts: number;
494
+ };
495
+ focus: AgentBriefItem[];
496
+ guardrails: AgentBriefGuardrail[];
497
+ suggestedNextActions: PreflightSuggestedAction[];
498
+ truncated?: boolean;
499
+ }
500
+ export type QualityScorecardVerdict = 'excellent' | 'healthy' | 'needs_attention' | 'blocked';
501
+ export type QualityScorecardStatus = 'pass' | 'watch' | 'fail';
502
+ export interface QualityScorecardDimension {
503
+ id: 'health' | 'security' | 'tests' | 'maintainability' | 'coordination';
504
+ label: string;
505
+ status: QualityScorecardStatus;
506
+ score: number;
507
+ summary: string;
508
+ evidence: string[];
509
+ commands: string[];
510
+ }
511
+ export interface QualityScorecardRisk {
512
+ id: string;
513
+ priority: WorkplanPriority;
514
+ title: string;
515
+ files: string[];
516
+ source: 'issue' | 'hotspot' | 'coordination';
517
+ command: string;
518
+ }
519
+ export interface QualityScorecardReport {
520
+ schemaVersion: 1;
521
+ verdict: QualityScorecardVerdict;
522
+ summary: string;
523
+ health: HealthScore;
524
+ dimensions: QualityScorecardDimension[];
525
+ topRisks: QualityScorecardRisk[];
526
+ commands: string[];
527
+ suggestedNextActions: PreflightSuggestedAction[];
528
+ truncated?: boolean;
529
+ }
290
530
  export interface SessionResourceSummary {
291
531
  schemaVersion: 1;
292
532
  sessionId: string;
@@ -1,10 +1,12 @@
1
1
  import type { ReportFormat } from '../types.js';
2
2
  export declare const OUTPUT_FORMATS: readonly ["console", "json", "markdown", "sarif", "html"];
3
3
  export declare const COMMAND_FORMAT_SUPPORT: {
4
+ readonly 'agent-brief': readonly ["console", "json"];
4
5
  readonly analyze: readonly ["console", "json", "markdown", "sarif", "html"];
5
6
  readonly 'apply-fix': readonly ["console", "json"];
6
7
  readonly audit: readonly ["console", "json", "markdown", "sarif"];
7
8
  readonly badge: readonly ["console"];
9
+ readonly 'bug-hunt': readonly ["console", "json"];
8
10
  readonly ci: readonly ["console", "json", "markdown", "sarif"];
9
11
  readonly coupling: readonly ["console", "json", "markdown", "html"];
10
12
  readonly coverage: readonly ["console", "json", "markdown", "html"];
@@ -12,11 +14,13 @@ export declare const COMMAND_FORMAT_SUPPORT: {
12
14
  readonly diagram: readonly ["console", "json", "markdown"];
13
15
  readonly diff: readonly ["console", "json", "markdown"];
14
16
  readonly doctor: readonly ["console", "json", "markdown", "sarif", "html"];
17
+ readonly 'evidence-pack': readonly ["console", "json"];
15
18
  readonly explain: readonly ["console", "json", "markdown"];
16
19
  readonly 'explain-issue': readonly ["console", "json", "markdown"];
17
20
  readonly file: readonly ["console", "json", "markdown"];
18
21
  readonly fix: readonly ["console"];
19
22
  readonly 'fix-suggest': readonly ["console", "json", "markdown"];
23
+ readonly handoff: readonly ["console", "json"];
20
24
  readonly help: readonly ["console"];
21
25
  readonly hotspots: readonly ["console", "json", "markdown", "html"];
22
26
  readonly impact: readonly ["console", "json", "markdown", "html"];
@@ -34,6 +38,9 @@ export declare const COMMAND_FORMAT_SUPPORT: {
34
38
  readonly 'plugin test': readonly ["console", "json"];
35
39
  readonly preflight: readonly ["console", "json"];
36
40
  readonly 'pr-diff': readonly ["console", "json", "markdown", "html"];
41
+ readonly 'quality-scorecard': readonly ["console", "json"];
42
+ readonly 'release-train': readonly ["console", "json"];
43
+ readonly 'regression-plan': readonly ["console", "json"];
37
44
  readonly review: readonly ["console", "json", "markdown", "html"];
38
45
  readonly search: readonly ["console", "json", "markdown"];
39
46
  readonly session: readonly ["console", "json"];
@@ -48,6 +55,7 @@ export declare const COMMAND_FORMAT_SUPPORT: {
48
55
  readonly 'workspace add': readonly ["console"];
49
56
  readonly 'workspace remove': readonly ["console"];
50
57
  readonly workspaces: readonly ["console", "json", "markdown"];
58
+ readonly workplan: readonly ["console", "json"];
51
59
  };
52
60
  export type CommandFormatName = keyof typeof COMMAND_FORMAT_SUPPORT;
53
61
  export declare function formatList(formats?: readonly ReportFormat[]): string;
@@ -1,9 +1,11 @@
1
1
  export const OUTPUT_FORMATS = ['console', 'json', 'markdown', 'sarif', 'html'];
2
2
  export const COMMAND_FORMAT_SUPPORT = {
3
+ 'agent-brief': ['console', 'json'],
3
4
  analyze: ['console', 'json', 'markdown', 'sarif', 'html'],
4
5
  'apply-fix': ['console', 'json'],
5
6
  audit: ['console', 'json', 'markdown', 'sarif'],
6
7
  badge: ['console'],
8
+ 'bug-hunt': ['console', 'json'],
7
9
  ci: ['console', 'json', 'markdown', 'sarif'],
8
10
  coupling: ['console', 'json', 'markdown', 'html'],
9
11
  coverage: ['console', 'json', 'markdown', 'html'],
@@ -11,11 +13,13 @@ export const COMMAND_FORMAT_SUPPORT = {
11
13
  diagram: ['console', 'json', 'markdown'],
12
14
  diff: ['console', 'json', 'markdown'],
13
15
  doctor: ['console', 'json', 'markdown', 'sarif', 'html'],
16
+ 'evidence-pack': ['console', 'json'],
14
17
  explain: ['console', 'json', 'markdown'],
15
18
  'explain-issue': ['console', 'json', 'markdown'],
16
19
  file: ['console', 'json', 'markdown'],
17
20
  fix: ['console'],
18
21
  'fix-suggest': ['console', 'json', 'markdown'],
22
+ handoff: ['console', 'json'],
19
23
  help: ['console'],
20
24
  hotspots: ['console', 'json', 'markdown', 'html'],
21
25
  impact: ['console', 'json', 'markdown', 'html'],
@@ -33,6 +37,9 @@ export const COMMAND_FORMAT_SUPPORT = {
33
37
  'plugin test': ['console', 'json'],
34
38
  preflight: ['console', 'json'],
35
39
  'pr-diff': ['console', 'json', 'markdown', 'html'],
40
+ 'quality-scorecard': ['console', 'json'],
41
+ 'release-train': ['console', 'json'],
42
+ 'regression-plan': ['console', 'json'],
36
43
  review: ['console', 'json', 'markdown', 'html'],
37
44
  search: ['console', 'json', 'markdown'],
38
45
  session: ['console', 'json'],
@@ -47,6 +54,7 @@ export const COMMAND_FORMAT_SUPPORT = {
47
54
  'workspace add': ['console'],
48
55
  'workspace remove': ['console'],
49
56
  workspaces: ['console', 'json', 'markdown'],
57
+ workplan: ['console', 'json'],
50
58
  };
51
59
  export function formatList(formats = OUTPUT_FORMATS) {
52
60
  return formats.join(', ');
@@ -1 +1 @@
1
- {"version":3,"file":"formatSupport.js","sourceRoot":"","sources":["../../src/utils/formatSupport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatSupport.js","sourceRoot":"","sources":["../../src/utils/formatSupport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "projscan",
3
3
  "mcpName": "io.github.abhiyoheswaran1/projscan",
4
- "version": "2.2.0",
5
- "description": "Agent-first code intelligence. MCP server (2025-03-26) with AST parsing for JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++; code graph, file + per-function AST cyclomatic complexity, per-function fan-in + fan-out, coupling + cycle detection, structural PR diff with HTML reporter, coverage report with HTML reporter, intent-grounded one-call PR review (projscan_review with optional `intent` arg) and long-running PR-watch mode with structured per-bucket deltas (projscan_review_watch), agent preflight with supply-chain IOC evidence, rule-driven fix suggestions + mechanical apply layer with rollback (projscan_apply_fix, projscan_fix_suggest, projscan_explain_issue), source-to-sink taint analysis (projscan_taint) with truncation reporting, transitive blast-radius analysis with cross-repo mode (projscan_impact for files and symbols), cross-repo workspace registration + intelligence (projscan_workspace_graph), per-function semantic search chunks (sub-file embeddings), per-rule confidence + severity drift + cost-summary analytics with live streaming (projscan_cost_summary), stable local analyzer + reporter plugin API (projscan_plugin, CLI --reporter, opt-in via PROJSCAN_PLUGINS_PREVIEW=1), monorepo workspace awareness with cross-package import policy + per-package dependencies / outdated / audit, BM25 + optional semantic search, cursor pagination, progress notifications, context-budgeted output, and a stable-surface CI guard. CLI on the side.",
4
+ "version": "2.8.0",
5
+ "description": "Agent-first code intelligence. MCP server (2025-03-26) with AST parsing for JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++; code graph, file + per-function AST cyclomatic complexity, per-function fan-in + fan-out, coupling + cycle detection, structural PR diff with HTML reporter, coverage report with HTML reporter, intent-grounded one-call PR review (projscan_review with optional `intent` arg) and long-running PR-watch mode with structured per-bucket deltas (projscan_review_watch), agent workplans (projscan_workplan), bug-hunt queues (projscan_bug_hunt), product-line planning (projscan_release_train), evidence packs (projscan_evidence_pack), regression planning (projscan_regression_plan), agent briefs (projscan_agent_brief), quality scorecards (projscan_quality_scorecard), and preflight with supply-chain IOC evidence, rule-driven fix suggestions + mechanical apply layer with rollback (projscan_apply_fix, projscan_fix_suggest, projscan_explain_issue), source-to-sink taint analysis (projscan_taint) with truncation reporting, transitive blast-radius analysis with cross-repo mode (projscan_impact for files and symbols), cross-repo workspace registration + intelligence (projscan_workspace_graph), per-function semantic search chunks (sub-file embeddings), per-rule confidence + severity drift + cost-summary analytics with live streaming (projscan_cost_summary), stable local analyzer + reporter plugin API (projscan_plugin, CLI --reporter, opt-in via PROJSCAN_PLUGINS_PREVIEW=1), monorepo workspace awareness with cross-package import policy + per-package dependencies / outdated / audit, BM25 + optional semantic search, cursor pagination, progress notifications, context-budgeted output, and a stable-surface CI guard. CLI on the side.",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
8
8
  "types": "./dist/index.d.ts",
@@ -20,8 +20,8 @@
20
20
  "scripts": {
21
21
  "build": "tsc && node scripts/copy-wasm.mjs && node scripts/generate-tool-manifest.mjs",
22
22
  "dev": "tsc --watch",
23
- "test": "vitest run --test-timeout 15000 --hook-timeout 15000",
24
- "test:watch": "vitest --test-timeout 15000 --hook-timeout 15000",
23
+ "test": "vitest run --test-timeout 60000 --hook-timeout 60000",
24
+ "test:watch": "vitest --test-timeout 60000 --hook-timeout 60000",
25
25
  "lint": "eslint src/",
26
26
  "format": "prettier --write .",
27
27
  "bench": "node scripts/bench.mjs",