@sassoftware/sas-score-mcp-serverjs 1.0.1-33 → 1.0.1-34
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/.skills/agents/sas-score-mcp-serverjs-agent.md +16 -179
- package/.skills/copilot-instructions.md +38 -255
- package/.skills/decision-trees/_primitives.yaml +8 -0
- package/.skills/decision-trees/job.yaml +33 -0
- package/.skills/decision-trees/jobdef.yaml +33 -0
- package/.skills/decision-trees/mas.yaml +35 -0
- package/.skills/decision-trees/scr.yaml +16 -0
- package/.skills/decision-trees/table.yaml +57 -0
- package/.skills/skills/README.md +1 -1
- package/.skills/skills/detail-strategy/SKILL.md +9 -10
- package/.skills/skills/find-resources/SKILL.md +13 -7
- package/.skills/skills/list-resource/SKILL.md +7 -0
- package/.skills/skills/read-strategy/SKILL.md +6 -1
- package/.skills/skills/request-routing/SKILL.md +72 -98
- package/.skills/skills/score-strategy/SKILL.md +5 -0
- package/package.json +1 -1
- package/src/toolHelpers/_findScr.js +31 -0
- package/src/toolSet/devaScore.js +5 -5
- package/src/toolSet/findJob.js +9 -6
- package/src/toolSet/findJobdef.js +7 -7
- package/src/toolSet/findLibrary.js +7 -7
- package/src/toolSet/findMas.js +6 -6
- package/src/toolSet/findTable.js +6 -6
- package/src/toolSet/getEnv.js +6 -6
- package/src/toolSet/jobInfo.js +4 -4
- package/src/toolSet/jobdefInfo.js +4 -4
- package/src/toolSet/listJobdefs.js +5 -5
- package/src/toolSet/listJobs.js +5 -5
- package/src/toolSet/listLibraries.js +4 -4
- package/src/toolSet/listMas.js +4 -4
- package/src/toolSet/listTables.js +5 -5
package/src/toolSet/findTable.js
CHANGED
|
@@ -12,7 +12,7 @@ function findTable(_appContext) {
|
|
|
12
12
|
find-table — locate a specific table in a CAS or SAS library.
|
|
13
13
|
|
|
14
14
|
USE when: find table, does table exist, is table in library, verify table exists, locate table
|
|
15
|
-
DO NOT USE for: list tables (use list-tables), table schema/columns (use table-info), read table data (use read-table), find lib/job/model (use respective tools)
|
|
15
|
+
DO NOT USE for: list tables (use ${_appContext.brand}-list-tables), table schema/columns (use ${_appContext.brand}-table-info), read table data (use ${_appContext.brand}-read-table), find lib/job/model (use respective tools)
|
|
16
16
|
|
|
17
17
|
PARAMETERS
|
|
18
18
|
- lib: string (required) — library name (e.g., 'Public', 'sashelp')
|
|
@@ -25,7 +25,7 @@ ROUTING RULES
|
|
|
25
25
|
- "does table <name> exist in <lib>" → { lib: "<lib>", name: "<name>", server: "cas" }
|
|
26
26
|
- "find table" with missing lib → ask "Which library contains the table?"
|
|
27
27
|
- "find table" with missing name → ask "Which table name would you like to find?"
|
|
28
|
-
- "list tables in <lib>" → use list-tables instead
|
|
28
|
+
- "list tables in <lib>" → use ${_appContext.brand}-list-tables instead
|
|
29
29
|
|
|
30
30
|
EXAMPLES
|
|
31
31
|
- "find table iris in Public" → { lib: "Public", name: "iris", server: "cas" }
|
|
@@ -34,10 +34,10 @@ EXAMPLES
|
|
|
34
34
|
- "verify table orders in Samples" → { lib: "Samples", name: "orders", server: "cas" }
|
|
35
35
|
|
|
36
36
|
NEGATIVE EXAMPLES (do not route here)
|
|
37
|
-
- "list tables in Public" (use list-tables)
|
|
38
|
-
- "find library Public" (use find-library)
|
|
39
|
-
- "what columns in cars?" (use table-info)
|
|
40
|
-
- "read data from customers" (use read-table)
|
|
37
|
+
- "list tables in Public" (use ${_appContext.brand}-list-tables)
|
|
38
|
+
- "find library Public" (use ${_appContext.brand}-find-library)
|
|
39
|
+
- "what columns in cars?" (use ${_appContext.brand}-table-info)
|
|
40
|
+
- "read data from customers" (use ${_appContext.brand}-read-table)
|
|
41
41
|
|
|
42
42
|
ERRORS
|
|
43
43
|
Returns { tables: [] } if not found; { tables: [name, ...] } if found. Never hallucinate table names.
|
package/src/toolSet/getEnv.js
CHANGED
|
@@ -10,7 +10,7 @@ function getEnv(_appContext) {
|
|
|
10
10
|
get-env — retrieve a variable value from the runtime environment.
|
|
11
11
|
|
|
12
12
|
USE when: what is the value of, get me, show current, what's the, retrieve environment variable
|
|
13
|
-
DO NOT USE for: read table data (use read-table), model info (use model-info), find/run job (use find-job
|
|
13
|
+
DO NOT USE for: read table data (use ${_appContext.brand}-read-table), model info (use ${_appContext.brand}-model-info), find/run job (use ${_appContext.brand}-find-job/${_appContext.brand}-run-job), set context (use ${_appContext.brand}-set-context)
|
|
14
14
|
|
|
15
15
|
PARAMETERS
|
|
16
16
|
- name: string (required) — variable name to retrieve (case-sensitive)
|
|
@@ -20,8 +20,8 @@ ROUTING RULES
|
|
|
20
20
|
- "get me <var>" → { name: "<var>" }
|
|
21
21
|
- "show <var>" → { name: "<var>" }
|
|
22
22
|
- "get" with no variable → ask "Which variable would you like to retrieve?"
|
|
23
|
-
- "what context am I using" → use set-context instead (no params)
|
|
24
|
-
- "set <var> to <value>" → use set-context or run-sas-program instead
|
|
23
|
+
- "what context am I using" → use ${_appContext.brand}-set-context instead (no params)
|
|
24
|
+
- "set <var> to <value>" → use ${_appContext.brand}-set-context or ${_appContext.brand}-run-sas-program instead
|
|
25
25
|
|
|
26
26
|
EXAMPLES
|
|
27
27
|
- "What's the value of myVar" → { name: "myVar" }
|
|
@@ -29,9 +29,9 @@ EXAMPLES
|
|
|
29
29
|
- "Show the current server setting" → { name: "server" }
|
|
30
30
|
|
|
31
31
|
NEGATIVE EXAMPLES (do not route here)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
-- "Read rows from customers" (use ${_appContext.brand}-read-table)
|
|
33
|
+
-- "Get model details for myModel" (use ${_appContext.brand}-model-info)
|
|
34
|
+
-- "Set the CAS server to finance-prod" (use ${_appContext.brand}-set-context)
|
|
35
35
|
|
|
36
36
|
ERRORS
|
|
37
37
|
Returns variable name with current value, or null if not found. Return structured error with message field.
|
package/src/toolSet/jobInfo.js
CHANGED
|
@@ -10,7 +10,7 @@ function jobInfo(_appContext) {
|
|
|
10
10
|
job-info — return information about a specific SAS Viya job.
|
|
11
11
|
|
|
12
12
|
USE when: find job, does job exist, is there a job named, lookup job, verify job exists
|
|
13
|
-
DO NOT USE for: list jobs (use list-jobs), run job (use run-job), execute jobdef (use run-jobdef), find lib/table/model (use respective tools)
|
|
13
|
+
DO NOT USE for: list jobs (use ${_appContext.brand}-list-jobs), run job (use ${_appContext.brand}-run-job), execute jobdef (use ${_appContext.brand}-run-jobdef), find lib/table/model (use respective tools)
|
|
14
14
|
|
|
15
15
|
PARAMETERS
|
|
16
16
|
- name: string (required) — name of job whose details are being requested. Should be exact match to job name.
|
|
@@ -24,9 +24,9 @@ EXAMPLES
|
|
|
24
24
|
- "describe job cars_job_v4" → { name: "cars_job_v4" }
|
|
25
25
|
|
|
26
26
|
NEGATIVE EXAMPLES (do not route here)
|
|
27
|
-
- "list jobs" (use list-jobs)
|
|
28
|
-
- "run job cars_job_v4" (use run-job)
|
|
29
|
-
- "execute jobdef cars_job_v4" (use run-jobdef)
|
|
27
|
+
- "list jobs" (use ${_appContext.brand}-list-jobs)
|
|
28
|
+
- "run job cars_job_v4" (use ${_appContext.brand}-run-job)
|
|
29
|
+
- "execute jobdef cars_job_v4" (use ${_appContext.brand}-run-jobdef)
|
|
30
30
|
|
|
31
31
|
ERRORS
|
|
32
32
|
Returns job metadata
|
|
@@ -10,7 +10,7 @@ function jobdefInfo(_appContext) {
|
|
|
10
10
|
jobdef -info — return information about a specific SAS Viya jobdef.
|
|
11
11
|
|
|
12
12
|
USE when: find jobdef, does jobdef exist, is there a jobdef named, lookup jobdef, verify jobdef exists
|
|
13
|
-
DO NOT USE for: list jobdefs (use list-jobdefs), run jobdef (use run-jobdef), find lib/table/model (use respective tools)
|
|
13
|
+
DO NOT USE for: list jobdefs (use ${_appContext.brand}-list-jobdefs), run jobdef (use ${_appContext.brand}-run-jobdef), find lib/table/model (use respective tools)
|
|
14
14
|
|
|
15
15
|
PARAMETERS
|
|
16
16
|
- name: string (required) — name of jobdef whose details are being requested. Should be exact match to jobdef name.
|
|
@@ -24,9 +24,9 @@ EXAMPLES
|
|
|
24
24
|
- "describe jobdef cars_job_v4" → { name: "cars_job_v4" }
|
|
25
25
|
|
|
26
26
|
NEGATIVE EXAMPLES (do not route here)
|
|
27
|
-
- "list jobdefs" (use list-jobdefs)
|
|
28
|
-
- "run jobdef cars_job_v4" (use run-jobdef)
|
|
29
|
-
- "execute jobdef cars_job_v4" (use run-jobdef)
|
|
27
|
+
- "list jobdefs" (use ${_appContext.brand}-list-jobdefs)
|
|
28
|
+
- "run jobdef cars_job_v4" (use ${_appContext.brand}-run-jobdef)
|
|
29
|
+
- "execute jobdef cars_job_v4" (use ${_appContext.brand}-run-jobdef)
|
|
30
30
|
|
|
31
31
|
ERRORS
|
|
32
32
|
Returns job metadata
|
|
@@ -10,7 +10,7 @@ function listJobdefs(_appContext) {
|
|
|
10
10
|
list-jobdefs — enumerate SAS Viya job definitions (jobdefs) assets.
|
|
11
11
|
|
|
12
12
|
USE when: list jobdefs, show jobdefs, browse jobdefs, list available jobdefs, next page
|
|
13
|
-
DO NOT USE for: find single jobdef (use find-jobdef), execute jobdef (use run-jobdef), find job (use find-job), sas code (use run-sas-program)
|
|
13
|
+
DO NOT USE for: find single jobdef (use ${_appContext.brand}-find-jobdef), execute jobdef (use ${_appContext.brand}-run-jobdef), find job (use ${_appContext.brand}-find-job), sas code (use ${_appContext.brand}-run-sas-program)
|
|
14
14
|
|
|
15
15
|
PARAMETERS
|
|
16
16
|
- limit: number (default: 10) — number of jobdefs per page
|
|
@@ -28,10 +28,10 @@ EXAMPLES
|
|
|
28
28
|
- next jobdefs → { start: 11, limit: 10 }
|
|
29
29
|
|
|
30
30
|
NEGATIVE EXAMPLES (do not route here)
|
|
31
|
-
- find jobdef abc (use find-jobdef)
|
|
32
|
-
- list jobs (use list-jobs)
|
|
33
|
-
- run jobdef abc (use run-jobdef)
|
|
34
|
-
- list models (use list-models)
|
|
31
|
+
- find jobdef abc (use ${_appContext.brand}-find-jobdef)
|
|
32
|
+
- list jobs (use ${_appContext.brand}-list-jobs)
|
|
33
|
+
- run jobdef abc (use ${_appContext.brand}-run-jobdef)
|
|
34
|
+
- list models (use ${_appContext.brand}-list-models)
|
|
35
35
|
|
|
36
36
|
PAGINATION
|
|
37
37
|
If returned length === limit, hint: next start = start + limit. Empty result with start > 1 means paged past end.
|
package/src/toolSet/listJobs.js
CHANGED
|
@@ -10,7 +10,7 @@ function listJobs(_appContext) {
|
|
|
10
10
|
list-jobs — enumerate SAS Viya job assets.
|
|
11
11
|
|
|
12
12
|
USE when: list jobs, show jobs, browse jobs, list available jobs, next page
|
|
13
|
-
DO NOT USE for: find single job (use find-job), execute job (use run-job), run job def (use run-jobdef), sas code (use run-sas-program)
|
|
13
|
+
DO NOT USE for: find single job (use ${_appContext.brand}-find-job), execute job (use ${_appContext.brand}-run-job), run job def (use ${_appContext.brand}-run-jobdef), sas code (use ${_appContext.brand}-run-sas-program)
|
|
14
14
|
|
|
15
15
|
PARAMETERS
|
|
16
16
|
- limit: number (default: 10) — number of jobs per page
|
|
@@ -28,10 +28,10 @@ EXAMPLES
|
|
|
28
28
|
- next jobs → { start: 11, limit: 10 }
|
|
29
29
|
|
|
30
30
|
NEGATIVE EXAMPLES (do not route here)
|
|
31
|
-
- find job abc (use find-job)
|
|
32
|
-
- run job abc (use run-job)
|
|
33
|
-
- list models (use list-models)
|
|
34
|
-
- list tables in lib xyz (use list-tables)
|
|
31
|
+
- find job abc (use ${_appContext.brand}-find-job)
|
|
32
|
+
- run job abc (use ${_appContext.brand}-run-job)
|
|
33
|
+
- list models (use ${_appContext.brand}-list-models)
|
|
34
|
+
- list tables in lib xyz (use ${_appContext.brand}-list-tables)
|
|
35
35
|
|
|
36
36
|
PAGINATION
|
|
37
37
|
If returned length === limit, hint: next start = start + limit. Empty result with start > 1 means paged past end.
|
|
@@ -9,7 +9,7 @@ function listLibraries(_appContext) {
|
|
|
9
9
|
list-libraries — enumerate CAS or SAS libraries.
|
|
10
10
|
|
|
11
11
|
USE when user asks to: list/show/enumerate libraries, caslibs, sas libs, or available libraries.
|
|
12
|
-
DO NOT USE for: listing tables in a library (→ list-tables), column/table metadata, job execution, models, scoring.
|
|
12
|
+
DO NOT USE for: listing tables in a library (→ ${_appContext.brand}-list-tables), column/table metadata, job execution, models, scoring.
|
|
13
13
|
|
|
14
14
|
PARAMETERS
|
|
15
15
|
- server: 'cas' | 'sas' | 'all' (default: 'all')
|
|
@@ -38,9 +38,9 @@ EXAMPLES
|
|
|
38
38
|
- "filter cas libs" (no filter given) → ask: "What filter expression should I apply?"
|
|
39
39
|
|
|
40
40
|
NEGATIVE EXAMPLES (do not route here)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
-- "list tables in SASHELP" → ${_appContext.brand}-list-tables
|
|
42
|
+
-- "list models / jobs / jobdefs"→ respective tools
|
|
43
|
+
-- "run a program to create a lib" → ${_appContext.brand}-run-sas-program
|
|
44
44
|
|
|
45
45
|
PAGINATION
|
|
46
46
|
If returned item count === limit, hint: next start = start + limit.
|
package/src/toolSet/listMas.js
CHANGED
|
@@ -32,10 +32,10 @@ EXAMPLES
|
|
|
32
32
|
- "list 25 mas" → { start:1, limit:25 }
|
|
33
33
|
|
|
34
34
|
NEGATIVE EXAMPLES (do not route here)
|
|
35
|
-
- "find model X" (use find-model)
|
|
36
|
-
- "describe model X" (use model-info)
|
|
37
|
-
- "score model X" (use model-score)
|
|
38
|
-
- "list jobs" (use list-jobs)
|
|
35
|
+
- "find model X" (use ${_appContext.brand}-find-model)
|
|
36
|
+
- "describe model X" (use ${_appContext.brand}-model-info)
|
|
37
|
+
- "score model X" (use ${_appContext.brand}-model-score)
|
|
38
|
+
- "list jobs" (use ${_appContext.brand}-list-jobs)
|
|
39
39
|
|
|
40
40
|
ERRORS
|
|
41
41
|
Returns empty array if no models found.
|
|
@@ -15,7 +15,7 @@ function listTables(_appContext) {
|
|
|
15
15
|
list-tables — enumerate tables within a library.
|
|
16
16
|
|
|
17
17
|
USE when: list tables in <lib>, show tables in <lib>, next page
|
|
18
|
-
DO NOT USE for: find table, list libraries, get table structure (use table-info), read data (use read-table)
|
|
18
|
+
DO NOT USE for: find table, list libraries, get table structure (use ${_appContext.brand}-table-info), read data (use ${_appContext.brand}-read-table)
|
|
19
19
|
|
|
20
20
|
PARAMETERS
|
|
21
21
|
- lib: string — library to inspect (required)
|
|
@@ -34,10 +34,10 @@ EXAMPLES
|
|
|
34
34
|
- "show 25 tables in sashelp" → { lib: "sashelp", limit: 25, start: 1 }
|
|
35
35
|
|
|
36
36
|
NEGATIVE EXAMPLES (do not route here)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
-- "list libs" (use ${_appContext.brand}-list-libraries)
|
|
38
|
+
-- "find lib Public" (use ${_appContext.brand}-find-library)
|
|
39
|
+
-- "describe table cars" (use ${_appContext.brand}-table-info)
|
|
40
|
+
-- "read table cars" (use ${_appContext.brand}-read-table)
|
|
41
41
|
|
|
42
42
|
ERRORS
|
|
43
43
|
Returns empty array if no tables found.
|