systemlink-cli 1.13.17__tar.gz → 1.13.20__tar.gz

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 (93) hide show
  1. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/PKG-INFO +1 -1
  2. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/pyproject.toml +1 -2
  3. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/_version.py +1 -1
  4. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/skill_click.py +11 -138
  5. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/webapp_click.py +8 -11
  6. systemlink_cli-1.13.17/slcli/skills/nipkg-file-package/SKILL.md +0 -587
  7. systemlink_cli-1.13.17/slcli/skills/slcli/SKILL.md +0 -300
  8. systemlink_cli-1.13.17/slcli/skills/slcli/references/analysis-recipes.md +0 -474
  9. systemlink_cli-1.13.17/slcli/skills/slcli/references/commands.md +0 -850
  10. systemlink_cli-1.13.17/slcli/skills/slcli/references/datasheet-workflow.md +0 -510
  11. systemlink_cli-1.13.17/slcli/skills/slcli/references/filtering.md +0 -236
  12. systemlink_cli-1.13.17/slcli/skills/slcli/references/routine-examples.md +0 -186
  13. systemlink_cli-1.13.17/slcli/skills/slcli/references/troubleshooting.md +0 -75
  14. systemlink_cli-1.13.17/slcli/skills/systemlink-job-debugging/SKILL.md +0 -325
  15. systemlink_cli-1.13.17/slcli/skills/systemlink-notebook/SKILL.md +0 -507
  16. systemlink_cli-1.13.17/slcli/skills/systemlink-notebook/references/interfaces.md +0 -185
  17. systemlink_cli-1.13.17/slcli/skills/systemlink-notebook/references/notebook-patterns.md +0 -318
  18. systemlink_cli-1.13.17/slcli/skills/systemlink-python-test/SKILL.md +0 -547
  19. systemlink_cli-1.13.17/slcli/skills/systemlink-webapp/SKILL.md +0 -241
  20. systemlink_cli-1.13.17/slcli/skills/systemlink-webapp/references/angular-ui-packages.md +0 -154
  21. systemlink_cli-1.13.17/slcli/skills/systemlink-webapp/references/deployment.md +0 -142
  22. systemlink_cli-1.13.17/slcli/skills/systemlink-webapp/references/layout-patterns.md +0 -98
  23. systemlink_cli-1.13.17/slcli/skills/systemlink-webapp/references/nimble-angular.md +0 -422
  24. systemlink_cli-1.13.17/slcli/skills/systemlink-webapp/references/systemlink-services.md +0 -192
  25. systemlink_cli-1.13.17/slcli/skills/systemlink-webapp/references/troubleshooting.md +0 -110
  26. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/LICENSE +0 -0
  27. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/dff-editor/editor.js +0 -0
  28. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/dff-editor/index.html +0 -0
  29. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/__init__.py +0 -0
  30. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/__main__.py +0 -0
  31. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/asset_click.py +0 -0
  32. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/cli_formatters.py +0 -0
  33. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/cli_utils.py +0 -0
  34. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/comment_click.py +0 -0
  35. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/completion_click.py +0 -0
  36. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/config.py +0 -0
  37. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/config_click.py +0 -0
  38. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/dataframe_click.py +0 -0
  39. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/dff_click.py +0 -0
  40. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/dff_decorators.py +0 -0
  41. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/example_click.py +0 -0
  42. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/example_loader.py +0 -0
  43. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/example_provisioner.py +0 -0
  44. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/README.md +0 -0
  45. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/_schema/schema-v1.0.json +0 -0
  46. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/demo-complete-workflow/README.md +0 -0
  47. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/demo-complete-workflow/config.yaml +0 -0
  48. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/demo-test-plans/README.md +0 -0
  49. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/demo-test-plans/config.yaml +0 -0
  50. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/exercise-5-1-parametric-insights/README.md +0 -0
  51. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/exercise-5-1-parametric-insights/config.yaml +0 -0
  52. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/exercise-7-1-test-plans/README.md +0 -0
  53. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/exercise-7-1-test-plans/config.yaml +0 -0
  54. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/spec-compliance-notebooks/README.md +0 -0
  55. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/spec-compliance-notebooks/config.yaml +0 -0
  56. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/spec-compliance-notebooks/notebooks/SpecAnalysis_ComplianceCalculation.ipynb +0 -0
  57. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/spec-compliance-notebooks/notebooks/SpecComplianceCalculation.ipynb +0 -0
  58. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/spec-compliance-notebooks/notebooks/SpecfileExtractionAndIngestion.ipynb +0 -0
  59. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/examples/spec-compliance-notebooks/spec_template.xlsx +0 -0
  60. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/feed_click.py +0 -0
  61. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/file_click.py +0 -0
  62. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/function_click.py +0 -0
  63. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/function_templates.py +0 -0
  64. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/main.py +0 -0
  65. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/mcp_click.py +0 -0
  66. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/mcp_reachability.py +0 -0
  67. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/mcp_server.py +0 -0
  68. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/notebook_click.py +0 -0
  69. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/platform.py +0 -0
  70. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/policy_click.py +0 -0
  71. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/policy_utils.py +0 -0
  72. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/profiles.py +0 -0
  73. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/response_handlers.py +0 -0
  74. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/rich_output.py +0 -0
  75. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/routine_click.py +0 -0
  76. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/spec_click.py +0 -0
  77. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/ssl_trust.py +0 -0
  78. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/state_click.py +0 -0
  79. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/system_click.py +0 -0
  80. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/system_query_utils.py +0 -0
  81. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/table_utils.py +0 -0
  82. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/tag_click.py +0 -0
  83. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/templates_click.py +0 -0
  84. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/testmonitor_click.py +0 -0
  85. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/universal_handlers.py +0 -0
  86. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/user_click.py +0 -0
  87. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/utils.py +0 -0
  88. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/web_editor.py +0 -0
  89. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/workflow_preview.py +0 -0
  90. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/workflows_click.py +0 -0
  91. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/workitem_click.py +0 -0
  92. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/workspace_click.py +0 -0
  93. {systemlink_cli-1.13.17 → systemlink_cli-1.13.20}/slcli/workspace_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: systemlink-cli
3
- Version: 1.13.17
3
+ Version: 1.13.20
4
4
  Summary: SystemLink Integrator CLI - cross-platform CLI for SystemLink workflows and templates.
5
5
  License-File: LICENSE
6
6
  Author: Fred Visser
@@ -1,13 +1,12 @@
1
1
  [tool.poetry]
2
2
  name = "systemlink-cli"
3
- version = "1.13.17"
3
+ version = "1.13.20"
4
4
  description = "SystemLink Integrator CLI - cross-platform CLI for SystemLink workflows and templates."
5
5
  authors = ["Fred Visser <fred.visser@emerson.com>"]
6
6
  packages = [{ include = "slcli" }]
7
7
  include = [
8
8
  { path = "dff-editor/index.html", format = ["wheel", "sdist"] },
9
9
  { path = "dff-editor/editor.js", format = ["wheel", "sdist"] },
10
- "slcli/skills/**/*",
11
10
  ]
12
11
 
13
12
 
@@ -1,4 +1,4 @@
1
1
  """Version information for slcli."""
2
2
 
3
3
  # This file is auto-generated. Do not edit manually.
4
- __version__ = "1.13.17"
4
+ __version__ = "1.13.20"
@@ -1,16 +1,17 @@
1
1
  """Agent Skills install command for slcli."""
2
2
 
3
- import shutil
4
3
  import sys
5
4
  from pathlib import Path
6
5
  from typing import Any, Dict, List, Optional, Tuple
7
6
 
8
7
  import click
9
- import questionary
10
8
 
11
9
  from .utils import ExitCodes
12
10
 
13
11
  SKILL_NAME = "slcli"
12
+ TEMPORARILY_UNAVAILABLE_MESSAGE = (
13
+ "AI skills are currently unavailable and cannot be installed right now."
14
+ )
14
15
  _FALLBACK_SKILL_CHOICES = [
15
16
  "nipkg-file-package",
16
17
  "slcli",
@@ -122,43 +123,9 @@ def install_skills_to_directory(
122
123
  skill_names: Optional[List[str]] = None,
123
124
  subdir: str = PROJECT_SKILLS_SUBDIR,
124
125
  ) -> int:
125
- """Install bundled skills into a project directory.
126
-
127
- Copies skill folders into a skills subdirectory within *directory*.
128
- The default location (``.agents/skills/``) is the universal convention
129
- recognized by multiple AI clients.
130
-
131
- Args:
132
- directory: Project root to install into.
133
- skill_names: Skills to install. Defaults to all available skills.
134
- subdir: Relative subdirectory for skills. Defaults to ``.agents/skills``.
135
-
136
- Returns:
137
- Number of skills successfully installed.
138
- """
139
- if skill_names is None:
140
- skill_names = list(SKILL_CHOICES)
141
-
142
- try:
143
- skills_dir = _find_bundled_skills_dir()
144
- except FileNotFoundError:
145
- return 0
146
-
147
- dest_parent = directory / subdir
148
- installed = 0
149
-
150
- for name in skill_names:
151
- source = skills_dir / name
152
- if not source.exists():
153
- continue
154
- dest = dest_parent / name
155
- dest_parent.mkdir(parents=True, exist_ok=True)
156
- if dest.exists():
157
- shutil.rmtree(dest)
158
- shutil.copytree(source, dest)
159
- installed += 1
160
-
161
- return installed
126
+ """Return 0 because bundled skill installation is temporarily disabled."""
127
+ del directory, skill_names, subdir
128
+ return 0
162
129
 
163
130
 
164
131
  def _resolve_destinations(clients: List[str], scope: str) -> List[Path]:
@@ -200,7 +167,7 @@ def register_skill_commands(cli: Any) -> None:
200
167
 
201
168
  @cli.group()
202
169
  def skill() -> None:
203
- """Install and manage AI assistant skills."""
170
+ """Check the current status of AI assistant skills."""
204
171
 
205
172
  @skill.command(name="install")
206
173
  @click.option(
@@ -234,101 +201,7 @@ def register_skill_commands(cli: Any) -> None:
234
201
  def install_skill(
235
202
  skill: Optional[str], client: Optional[str], scope: Optional[str], force: bool
236
203
  ) -> None:
237
- """Install agent skills for AI coding assistants.
238
-
239
- Copies bundled skills into the skills directory of one or more AI clients.
240
- Available skills are shown in `--help` and prompted interactively.
241
- Supported clients and their skill locations:
242
-
243
- \b
244
- agents personal: ~/.agents/skills/ project: .agents/skills/
245
- (most agents)
246
- claude personal: ~/.claude/skills/ project: .claude/skills/
247
-
248
- When options are omitted you will be prompted interactively.
249
- """
250
- # ── interactive prompts when options not supplied ─────────────────────
251
- if skill is None:
252
- skill = questionary.select(
253
- "Which skill to install?",
254
- choices=SKILL_CHOICES + ["all"],
255
- default="all",
256
- ).ask()
257
- if skill is None:
258
- raise click.Abort()
259
-
260
- if client is None:
261
- client = questionary.select(
262
- "Install for which AI client?",
263
- choices=[
264
- questionary.Choice("most agents", value="agents"),
265
- questionary.Choice("claude", value="claude"),
266
- questionary.Choice("all clients", value="all"),
267
- ],
268
- default="agents",
269
- ).ask()
270
- if client is None:
271
- raise click.Abort()
272
-
273
- if scope is None:
274
- scope = questionary.select(
275
- "Install scope?",
276
- choices=["personal", "project", "both"],
277
- default="personal",
278
- ).ask()
279
- if scope is None:
280
- raise click.Abort()
281
-
282
- # ── resolve skill and client lists ────────────────────────────────────
283
- skill_names: List[str] = SKILL_CHOICES if skill == "all" else [skill]
284
- clients: List[str] = CLIENT_CHOICES if client == "all" else [client]
285
-
286
- # ── locate source ─────────────────────────────────────────────────────
287
- try:
288
- skills_dir = _find_bundled_skills_dir()
289
- except FileNotFoundError as exc:
290
- click.echo(f"✗ {exc}", err=True)
291
- sys.exit(ExitCodes.GENERAL_ERROR)
292
-
293
- destinations = _resolve_destinations(clients, scope)
294
-
295
- installed_any = False
296
- errors = 0
297
-
298
- for skill_name in skill_names:
299
- source = skills_dir / skill_name
300
- if not source.exists():
301
- click.echo(
302
- f"✗ Skill '{skill_name}' not found in bundled skills directory.", err=True
303
- )
304
- errors += 1
305
- continue
306
-
307
- for dest_parent in destinations:
308
- dest = dest_parent / skill_name
309
-
310
- if dest.exists() and not force:
311
- confirm = questionary.confirm(
312
- f"Skill already installed at {dest}. Overwrite?",
313
- default=False,
314
- ).ask()
315
- if not confirm:
316
- click.echo(f" Skipped {dest}")
317
- continue
318
-
319
- try:
320
- dest_parent.mkdir(parents=True, exist_ok=True)
321
- if dest.exists():
322
- shutil.rmtree(dest)
323
- shutil.copytree(source, dest)
324
- click.echo(f"✓ Installed {skill_name} skill → {dest}")
325
- installed_any = True
326
- except OSError as exc:
327
- click.echo(f"✗ Failed to install to {dest}: {exc}", err=True)
328
- errors += 1
329
-
330
- if not installed_any and errors == 0:
331
- click.echo("No skill locations were updated.")
332
-
333
- if errors:
334
- sys.exit(ExitCodes.GENERAL_ERROR)
204
+ """Report that skill installation is currently unavailable."""
205
+ del skill, client, scope, force
206
+ click.echo(f"✗ {TEMPORARILY_UNAVAILABLE_MESSAGE}", err=True)
207
+ sys.exit(ExitCodes.GENERAL_ERROR)
@@ -20,7 +20,7 @@ import questionary
20
20
  import requests
21
21
 
22
22
  from .cli_utils import validate_output_format
23
- from .skill_click import install_skills_to_directory
23
+ from .skill_click import TEMPORARILY_UNAVAILABLE_MESSAGE
24
24
  from .universal_handlers import UniversalResponseHandler
25
25
  from .utils import (
26
26
  ExitCodes,
@@ -719,9 +719,9 @@ def _render_angular_prompts_md(directory: Path) -> str:
719
719
  return f"""# SystemLink WebApp - AI Prompts
720
720
 
721
721
  This project was initialized with `slcli webapp init`.
722
- The bundled `systemlink-webapp` and `slcli` skills are already installed into
723
- this project so your AI assistant can scaffold the Angular workspace and apply
724
- the SystemLink-specific conventions immediately.
722
+ AI skills for this workflow are currently unavailable, so this starter keeps
723
+ the prompts inline in this repository for now instead of relying on bundled
724
+ `systemlink-webapp` and `slcli` skills.
725
725
 
726
726
  ## Starter Prompt
727
727
 
@@ -793,14 +793,15 @@ This directory was initialized with `slcli webapp init`.
793
793
 
794
794
  `slcli` owns the SystemLink-specific starter layer for this workflow:
795
795
 
796
- - bundled AI skills in `.agents/skills/`
797
796
  - ready-made prompts in [PROMPTS.md](PROMPTS.md)
798
797
  - deployment guidance for `slcli webapp publish`
799
798
  - Plugin Manager packaging config scaffolding via `slcli webapp manifest init`
800
799
 
801
800
  Angular CLI remains the source of truth for the Angular workspace itself. That
802
801
  keeps the generated project aligned with current Angular defaults while the
803
- skills and starter files enforce the SystemLink-specific best practices.
802
+ starter files enforce the SystemLink-specific best practices.
803
+
804
+ AI skills are currently unavailable and are not installed into this project.
804
805
 
805
806
  ## Bootstrap the Angular workspace
806
807
 
@@ -870,15 +871,11 @@ def _init_angular_template(directory: Path, force: bool) -> None:
870
871
  prompts_file.write_text(_render_angular_prompts_md(directory), encoding="utf-8")
871
872
  start_here_file.write_text(_render_angular_start_here_md(directory), encoding="utf-8")
872
873
 
873
- # Auto-install AI skills into the project directory
874
- installed = install_skills_to_directory(directory)
875
- skill_msg = f"{installed} skill(s) installed" if installed else "skills not found"
876
-
877
874
  format_success(
878
875
  "Scaffolded SystemLink Angular starter",
879
876
  {
880
877
  "Directory": str(directory),
881
- "Skills": skill_msg,
878
+ "Skills": TEMPORARILY_UNAVAILABLE_MESSAGE,
882
879
  "Next steps": (
883
880
  "1. cd " + str(directory) + "\n"
884
881
  " 2. Open START_HERE.md and PROMPTS.md\n"