traceforge-toolkit 0.1.0__py3-none-any.whl
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.
- traceforge/__init__.py +72 -0
- traceforge/__main__.py +5 -0
- traceforge/_generated.py +254 -0
- traceforge/adapters/__init__.py +12 -0
- traceforge/adapters/base.py +82 -0
- traceforge/adapters/genai_otel.py +164 -0
- traceforge/adapters/mapped_json.py +297 -0
- traceforge/adapters/otel.py +220 -0
- traceforge/boundary/__init__.py +46 -0
- traceforge/boundary/data/boundary-model.joblib +0 -0
- traceforge/boundary/decode.py +87 -0
- traceforge/boundary/features.py +137 -0
- traceforge/boundary/inference.py +267 -0
- traceforge/boundary/inferencer.py +146 -0
- traceforge/classify/__init__.py +95 -0
- traceforge/classify/cmd.py +109 -0
- traceforge/classify/coding.py +213 -0
- traceforge/classify/config.py +554 -0
- traceforge/classify/core.py +266 -0
- traceforge/classify/data/binary_info.yaml +358 -0
- traceforge/classify/data/canonical_tools.yaml +251 -0
- traceforge/classify/data/effect_overrides.yaml +480 -0
- traceforge/classify/data/mcp_profiles.yaml +711 -0
- traceforge/classify/data/recommendation_rules.yaml +111 -0
- traceforge/classify/data/risk.yaml +534 -0
- traceforge/classify/data/shell_defaults.yaml +95 -0
- traceforge/classify/data/shell_rules.yaml +1192 -0
- traceforge/classify/data/tool_classifications.yaml +215 -0
- traceforge/classify/data/verb_inference.yaml +218 -0
- traceforge/classify/mcp.py +181 -0
- traceforge/classify/phases.py +75 -0
- traceforge/classify/powershell.py +93 -0
- traceforge/classify/registry.py +138 -0
- traceforge/classify/risk.py +553 -0
- traceforge/classify/rules.py +215 -0
- traceforge/classify/schema.yaml +282 -0
- traceforge/classify/shell.py +503 -0
- traceforge/classify/tools.py +91 -0
- traceforge/classify/workflow.py +32 -0
- traceforge/cli/__init__.py +42 -0
- traceforge/cli/config_cmd.py +130 -0
- traceforge/cli/detect.py +46 -0
- traceforge/cli/download_cmd.py +74 -0
- traceforge/cli/factory.py +60 -0
- traceforge/cli/gate_cmd.py +30 -0
- traceforge/cli/init_cmd.py +86 -0
- traceforge/cli/replay.py +130 -0
- traceforge/cli/runner.py +181 -0
- traceforge/cli/score.py +217 -0
- traceforge/cli/status.py +65 -0
- traceforge/cli/watch.py +297 -0
- traceforge/config/__init__.py +80 -0
- traceforge/config/defaults.py +149 -0
- traceforge/config/loader.py +239 -0
- traceforge/config/mappings.py +104 -0
- traceforge/config/models.py +579 -0
- traceforge/enricher.py +576 -0
- traceforge/formatting/__init__.py +12 -0
- traceforge/formatting/budget.py +92 -0
- traceforge/formatting/density.py +154 -0
- traceforge/gate/__init__.py +17 -0
- traceforge/gate/client.py +145 -0
- traceforge/gate/external.py +305 -0
- traceforge/gate/registry.py +108 -0
- traceforge/gate/server.py +174 -0
- traceforge/gates/__init__.py +8 -0
- traceforge/gates/pii.py +352 -0
- traceforge/gates/pii_patterns.yaml +228 -0
- traceforge/governance/__init__.py +121 -0
- traceforge/governance/assessor.py +441 -0
- traceforge/governance/budget.py +59 -0
- traceforge/governance/canonical.py +56 -0
- traceforge/governance/codec.py +414 -0
- traceforge/governance/context.py +249 -0
- traceforge/governance/drift.py +196 -0
- traceforge/governance/emitter.py +234 -0
- traceforge/governance/envelope.py +138 -0
- traceforge/governance/ifc.py +364 -0
- traceforge/governance/integrity.py +162 -0
- traceforge/governance/labeler.py +250 -0
- traceforge/governance/mcp_drift.py +328 -0
- traceforge/governance/monitor.py +539 -0
- traceforge/governance/observer.py +276 -0
- traceforge/governance/persistence.py +401 -0
- traceforge/governance/phase1.py +77 -0
- traceforge/governance/pii.py +276 -0
- traceforge/governance/pipeline.py +840 -0
- traceforge/governance/registry.py +110 -0
- traceforge/governance/results.py +183 -0
- traceforge/governance/risk_wrapper.py +113 -0
- traceforge/governance/rules.py +368 -0
- traceforge/governance/scorer.py +262 -0
- traceforge/governance/shield.py +318 -0
- traceforge/governance/state.py +466 -0
- traceforge/governance/types.py +176 -0
- traceforge/mappings/__init__.py +1 -0
- traceforge/mappings/aider.yaml +216 -0
- traceforge/mappings/aider_markdown.yaml +113 -0
- traceforge/mappings/amazonq.yaml +56 -0
- traceforge/mappings/antigravity.yaml +88 -0
- traceforge/mappings/claude.yaml +93 -0
- traceforge/mappings/cline.yaml +286 -0
- traceforge/mappings/codex.yaml +158 -0
- traceforge/mappings/continue_dev.yaml +57 -0
- traceforge/mappings/copilot.yaml +266 -0
- traceforge/mappings/copilot_markdown.yaml +72 -0
- traceforge/mappings/copilot_vscode.yaml +181 -0
- traceforge/mappings/crewai.yaml +592 -0
- traceforge/mappings/goose.yaml +128 -0
- traceforge/mappings/langgraph.yaml +165 -0
- traceforge/mappings/maf.yaml +90 -0
- traceforge/mappings/maf_transcript.yaml +99 -0
- traceforge/mappings/openai_agents.yaml +144 -0
- traceforge/mappings/opencode.yaml +473 -0
- traceforge/mappings/openhands.yaml +320 -0
- traceforge/mappings/pydantic_ai.yaml +183 -0
- traceforge/mappings/smolagents.yaml +89 -0
- traceforge/mappings/sweagent.yaml +82 -0
- traceforge/migrations/__init__.py +1 -0
- traceforge/migrations/env.py +60 -0
- traceforge/migrations/models.py +145 -0
- traceforge/migrations/runner.py +44 -0
- traceforge/migrations/script.py.mako +25 -0
- traceforge/migrations/versions/0001_initial.py +176 -0
- traceforge/migrations/versions/__init__.py +4 -0
- traceforge/models.py +29 -0
- traceforge/parsers/__init__.py +21 -0
- traceforge/parsers/aider.py +416 -0
- traceforge/parsers/base.py +226 -0
- traceforge/parsers/copilot.py +314 -0
- traceforge/phase/__init__.py +50 -0
- traceforge/phase/data/phase-model.joblib +0 -0
- traceforge/phase/data/potion-base-8M/README.md +99 -0
- traceforge/phase/data/potion-base-8M/config.json +13 -0
- traceforge/phase/data/potion-base-8M/model.safetensors +0 -0
- traceforge/phase/data/potion-base-8M/modules.json +14 -0
- traceforge/phase/data/potion-base-8M/tokenizer.json +1 -0
- traceforge/phase/event_rows.py +107 -0
- traceforge/phase/features.py +468 -0
- traceforge/phase/inference.py +279 -0
- traceforge/phase/inferencer.py +171 -0
- traceforge/phase/segmentation.py +258 -0
- traceforge/pipeline.py +891 -0
- traceforge/preprocessors/__init__.py +34 -0
- traceforge/preprocessors/amazonq.py +224 -0
- traceforge/preprocessors/antigravity.py +116 -0
- traceforge/preprocessors/claude.py +95 -0
- traceforge/preprocessors/cline.py +36 -0
- traceforge/preprocessors/codex.py +311 -0
- traceforge/preprocessors/continue_dev.py +119 -0
- traceforge/preprocessors/copilot_vscode.py +171 -0
- traceforge/preprocessors/goose.py +156 -0
- traceforge/preprocessors/maf_transcript.py +84 -0
- traceforge/preprocessors/openai_agents.py +86 -0
- traceforge/preprocessors/opencode.py +85 -0
- traceforge/preprocessors/openhands.py +36 -0
- traceforge/preprocessors/pydantic_ai.py +62 -0
- traceforge/preprocessors/registry.py +24 -0
- traceforge/preprocessors/smolagents.py +90 -0
- traceforge/py.typed +0 -0
- traceforge/sdk/__init__.py +59 -0
- traceforge/sdk/gate_policy.py +63 -0
- traceforge/sdk/gate_types.py +140 -0
- traceforge/sdk/pipeline.py +265 -0
- traceforge/sdk/verdict.py +81 -0
- traceforge/sinks/__init__.py +23 -0
- traceforge/sinks/base.py +95 -0
- traceforge/sinks/callback.py +132 -0
- traceforge/sinks/console.py +112 -0
- traceforge/sinks/factory.py +94 -0
- traceforge/sinks/jsonl.py +125 -0
- traceforge/sinks/otel_exporter.py +212 -0
- traceforge/sinks/parquet.py +260 -0
- traceforge/sinks/s3.py +206 -0
- traceforge/sinks/sqlite_output.py +234 -0
- traceforge/sinks/webhook.py +136 -0
- traceforge/sources/__init__.py +18 -0
- traceforge/sources/auto_detect.py +173 -0
- traceforge/sources/base.py +45 -0
- traceforge/sources/file_poll.py +136 -0
- traceforge/sources/file_watch.py +221 -0
- traceforge/sources/http_poll.py +141 -0
- traceforge/sources/replay.py +63 -0
- traceforge/sources/sqlite.py +187 -0
- traceforge/sources/sse.py +198 -0
- traceforge/telemetry/__init__.py +192 -0
- traceforge/title/__init__.py +23 -0
- traceforge/title/_resolve.py +79 -0
- traceforge/title/context.py +295 -0
- traceforge/title/data/boilerplate_files.json +14 -0
- traceforge/title/heuristics.py +429 -0
- traceforge/title/hygiene.py +90 -0
- traceforge/title/inference.py +314 -0
- traceforge/title/inferencer.py +477 -0
- traceforge/title/naming.py +398 -0
- traceforge/trace.py +291 -0
- traceforge/tracking/__init__.py +30 -0
- traceforge/tracking/models.py +115 -0
- traceforge/tracking/phase_tracker.py +288 -0
- traceforge/types.py +315 -0
- traceforge_toolkit-0.1.0.dist-info/METADATA +188 -0
- traceforge_toolkit-0.1.0.dist-info/RECORD +205 -0
- traceforge_toolkit-0.1.0.dist-info/WHEEL +4 -0
- traceforge_toolkit-0.1.0.dist-info/entry_points.txt +2 -0
- traceforge_toolkit-0.1.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"""cmd.exe command classification via lightweight tokenization.
|
|
2
|
+
|
|
3
|
+
No tree-sitter grammar exists for cmd.exe with sufficient maturity.
|
|
4
|
+
Uses simple splitting on & and && operators (respecting quotes) and
|
|
5
|
+
the shared rule table for binary-level classification.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import os
|
|
11
|
+
import re
|
|
12
|
+
from typing import TYPE_CHECKING
|
|
13
|
+
|
|
14
|
+
from traceforge.classify.core import Classification
|
|
15
|
+
from traceforge.classify.coding import CodingMechanism
|
|
16
|
+
from traceforge.classify.shell import (
|
|
17
|
+
build_classification_from_commands,
|
|
18
|
+
classify_single_command,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
if TYPE_CHECKING:
|
|
22
|
+
from traceforge.classify.config import ClassificationEngine
|
|
23
|
+
|
|
24
|
+
_STRIP_BINARY_EXT = re.compile(r"\.(exe|cmd|bat|ps1|sh|com)$", re.IGNORECASE)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _split_cmd_commands(command: str) -> list[str]:
|
|
28
|
+
"""Split a cmd.exe command on & and && operators, respecting quotes."""
|
|
29
|
+
segments: list[str] = []
|
|
30
|
+
current = ""
|
|
31
|
+
i = 0
|
|
32
|
+
in_dquote = False
|
|
33
|
+
|
|
34
|
+
while i < len(command):
|
|
35
|
+
ch = command[i]
|
|
36
|
+
if ch == '"':
|
|
37
|
+
in_dquote = not in_dquote
|
|
38
|
+
current += ch
|
|
39
|
+
elif ch == "&" and not in_dquote:
|
|
40
|
+
if current.strip():
|
|
41
|
+
segments.append(current.strip())
|
|
42
|
+
current = ""
|
|
43
|
+
if i + 1 < len(command) and command[i + 1] == "&":
|
|
44
|
+
i += 1
|
|
45
|
+
else:
|
|
46
|
+
current += ch
|
|
47
|
+
i += 1
|
|
48
|
+
|
|
49
|
+
if current.strip():
|
|
50
|
+
segments.append(current.strip())
|
|
51
|
+
return segments
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _extract_binary_and_subcmd(segment: str) -> tuple[str, str | None, list[str]]:
|
|
55
|
+
"""Extract binary, first positional arg, and flags from a cmd segment."""
|
|
56
|
+
parts = segment.split()
|
|
57
|
+
if not parts:
|
|
58
|
+
return "", None, []
|
|
59
|
+
|
|
60
|
+
binary = _STRIP_BINARY_EXT.sub("", os.path.basename(parts[0]).lower())
|
|
61
|
+
|
|
62
|
+
subcmd = None
|
|
63
|
+
flags: list[str] = []
|
|
64
|
+
for p in parts[1:]:
|
|
65
|
+
if p.startswith("/") or p.startswith("-"):
|
|
66
|
+
flags.append(p)
|
|
67
|
+
elif subcmd is None:
|
|
68
|
+
subcmd = p
|
|
69
|
+
|
|
70
|
+
return binary, subcmd, flags
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def classify_cmd_command(
|
|
74
|
+
command: str,
|
|
75
|
+
*,
|
|
76
|
+
engine: ClassificationEngine,
|
|
77
|
+
) -> Classification:
|
|
78
|
+
"""Classify a cmd.exe command string into a full Classification."""
|
|
79
|
+
if not command or not command.strip():
|
|
80
|
+
return Classification(
|
|
81
|
+
mechanism=CodingMechanism.PROCESS_SHELL,
|
|
82
|
+
effect=None,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
segments = _split_cmd_commands(command)
|
|
86
|
+
if not segments:
|
|
87
|
+
return Classification(
|
|
88
|
+
mechanism=CodingMechanism.PROCESS_SHELL,
|
|
89
|
+
effect=None,
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
from traceforge.classify.shell import _CommandClassification
|
|
93
|
+
|
|
94
|
+
command_results: list[_CommandClassification] = []
|
|
95
|
+
for segment in segments:
|
|
96
|
+
binary, subcmd, flags = _extract_binary_and_subcmd(segment)
|
|
97
|
+
if not binary:
|
|
98
|
+
continue
|
|
99
|
+
cmd_cls = classify_single_command(binary, subcmd, flags, engine=engine)
|
|
100
|
+
command_results.append(cmd_cls)
|
|
101
|
+
|
|
102
|
+
if not command_results:
|
|
103
|
+
return Classification(
|
|
104
|
+
mechanism=CodingMechanism.PROCESS_SHELL,
|
|
105
|
+
effect=None,
|
|
106
|
+
capability=frozenset({"subprocess"}),
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
return build_classification_from_commands(command_results, shell_dialect="cmd")
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"""Coding domain subtypes — extends core dimensions for software engineering agents.
|
|
2
|
+
|
|
3
|
+
Ships built-in with traceforge. Registered automatically on import.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from enum import StrEnum
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
# ── Shell-specific types (coding domain only) ──
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ShellDialect(StrEnum):
|
|
15
|
+
"""Shell language dialect for process.shell mechanism."""
|
|
16
|
+
|
|
17
|
+
BASH = "bash"
|
|
18
|
+
POWERSHELL = "powershell"
|
|
19
|
+
CMD = "cmd"
|
|
20
|
+
ZSH = "zsh"
|
|
21
|
+
FISH = "fish"
|
|
22
|
+
POSIX_SH = "posix_sh"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ShellStructure(StrEnum):
|
|
26
|
+
"""Shell-specific structural patterns (extends core Structure)."""
|
|
27
|
+
|
|
28
|
+
PIPED = "piped"
|
|
29
|
+
REDIRECTED = "redirected"
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# ── Mechanism subtypes ──
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class CodingMechanism(StrEnum):
|
|
36
|
+
"""Coding-specific mechanism subtypes.
|
|
37
|
+
|
|
38
|
+
Extends core Mechanism with finer-grained resource domains specific to
|
|
39
|
+
software development. Mechanism is the resource domain ONLY — what the
|
|
40
|
+
tool talks to. Direction/intent is expressed through Action and Effect.
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
PROCESS_SHELL = "process.shell" # Runs commands in a shell (bash, powershell)
|
|
44
|
+
PROCESS_REPL = "process.repl" # Interactive language runtime (python, node)
|
|
45
|
+
PROCESS_DEBUG = "process.debug" # Debugger attached to a process (gdb, lldb)
|
|
46
|
+
NETWORK_HTTP = "network.http" # HTTP/HTTPS requests (fetch, curl, API calls)
|
|
47
|
+
DATABASE_SQL = "database.sql" # SQL database queries (postgres, mysql, sqlite)
|
|
48
|
+
DATABASE_NOSQL = "database.nosql" # NoSQL database operations (mongo, redis)
|
|
49
|
+
DELEGATION_AGENT = "delegation.agent" # Spawns a sub-agent to do work
|
|
50
|
+
DELEGATION_SELF = "delegation.self" # Self-delegates (plans, checkpoints)
|
|
51
|
+
COMMUNICATION_USER = "communication.user" # Talks to the human user
|
|
52
|
+
COMMUNICATION_SYSTEM = "communication.system" # Internal agent bookkeeping
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
# ── Scope subtypes ──
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class CodingScope(StrEnum):
|
|
59
|
+
"""Coding-specific scope subtypes."""
|
|
60
|
+
|
|
61
|
+
SOURCE_CODE = "artifact.source_code"
|
|
62
|
+
TEST_CODE = "artifact.test_code"
|
|
63
|
+
BUILD_OUTPUT = "artifact.build_output"
|
|
64
|
+
CONTAINER_IMAGE = "artifact.container_image"
|
|
65
|
+
PACKAGE = "artifact.package"
|
|
66
|
+
DOCUMENTATION = "artifact.documentation"
|
|
67
|
+
API_SPEC = "artifact.api_spec"
|
|
68
|
+
REPOSITORY = "artifact.repository"
|
|
69
|
+
DEPENDENCY = "configuration.dependency"
|
|
70
|
+
ENVIRONMENT = "configuration.environment"
|
|
71
|
+
INFRASTRUCTURE = "configuration.infrastructure"
|
|
72
|
+
CI_CD_CONFIG = "configuration.ci_cd"
|
|
73
|
+
PROCESS = "state.process"
|
|
74
|
+
SERVICE = "state.service"
|
|
75
|
+
DEPLOYMENT = "state.deployment"
|
|
76
|
+
VCS_STATE = "state.repository"
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
# ── Role subtypes ──
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class CodingRole(StrEnum):
|
|
83
|
+
"""Coding-specific role subtypes."""
|
|
84
|
+
|
|
85
|
+
# validator.*
|
|
86
|
+
LINTER = "validator.linter"
|
|
87
|
+
TEST_RUNNER = "validator.test_runner"
|
|
88
|
+
TYPE_CHECKER = "validator.type_checker"
|
|
89
|
+
SECURITY_SCANNER = "validator.security_scanner"
|
|
90
|
+
BUILD_CHECKER = "validator.build_checker"
|
|
91
|
+
|
|
92
|
+
# transformer.*
|
|
93
|
+
COMPILER = "transformer.compiler"
|
|
94
|
+
FORMATTER = "transformer.formatter"
|
|
95
|
+
BUNDLER = "transformer.bundler"
|
|
96
|
+
TRANSPILER = "transformer.transpiler"
|
|
97
|
+
MINIFIER = "transformer.minifier"
|
|
98
|
+
REFACTORER = "transformer.refactorer"
|
|
99
|
+
|
|
100
|
+
# generator.*
|
|
101
|
+
CODE_GENERATOR = "generator.code_generator"
|
|
102
|
+
SCAFFOLDER = "generator.scaffolder"
|
|
103
|
+
DOC_GENERATOR = "generator.doc_generator"
|
|
104
|
+
|
|
105
|
+
# executor.*
|
|
106
|
+
SCRIPT_RUNNER = "executor.script_runner"
|
|
107
|
+
REPL = "executor.repl"
|
|
108
|
+
CONTAINER_RUNTIME = "executor.container_runtime"
|
|
109
|
+
|
|
110
|
+
# orchestrator.*
|
|
111
|
+
PACKAGE_MANAGER = "orchestrator.package_manager"
|
|
112
|
+
TASK_RUNNER = "orchestrator.task_runner"
|
|
113
|
+
CI_CD = "orchestrator.ci_cd"
|
|
114
|
+
|
|
115
|
+
# observer.*
|
|
116
|
+
DEBUGGER = "observer.debugger"
|
|
117
|
+
PROFILER = "observer.profiler"
|
|
118
|
+
LOGGER = "observer.logger"
|
|
119
|
+
|
|
120
|
+
# retriever.*
|
|
121
|
+
SEARCH_INDEX = "retriever.search_index"
|
|
122
|
+
FILE_BROWSER = "retriever.file_browser"
|
|
123
|
+
WEB_SCRAPER = "retriever.web_scraper"
|
|
124
|
+
API_CLIENT = "retriever.api_client"
|
|
125
|
+
|
|
126
|
+
# modifier.*
|
|
127
|
+
FILE_EDITOR = "modifier.file_editor"
|
|
128
|
+
|
|
129
|
+
# persistence.*
|
|
130
|
+
VERSION_CONTROL = "persistence.version_control"
|
|
131
|
+
DATABASE = "persistence.database"
|
|
132
|
+
CACHE = "persistence.cache"
|
|
133
|
+
|
|
134
|
+
# communicator.*
|
|
135
|
+
USER_PROMPT = "communicator.user_prompt"
|
|
136
|
+
SYSTEM_REPORTER = "communicator.system_reporter"
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
# ── Action subtypes ──
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
class CodingAction(StrEnum):
|
|
143
|
+
"""Coding-specific action subtypes.
|
|
144
|
+
|
|
145
|
+
Actions are pure verbs. Use Mechanism/Scope for object/target context.
|
|
146
|
+
"""
|
|
147
|
+
|
|
148
|
+
# validate.*
|
|
149
|
+
LINT = "validate.lint"
|
|
150
|
+
TEST = "validate.test"
|
|
151
|
+
TYPECHECK = "validate.typecheck"
|
|
152
|
+
SECURITY_SCAN = "validate.security_scan"
|
|
153
|
+
BUILD_CHECK = "validate.build_check"
|
|
154
|
+
|
|
155
|
+
# retrieve.*
|
|
156
|
+
SEARCH = "retrieve.search"
|
|
157
|
+
READ = "retrieve.read"
|
|
158
|
+
QUERY = "retrieve.query"
|
|
159
|
+
BROWSE = "retrieve.browse"
|
|
160
|
+
|
|
161
|
+
# transform.*
|
|
162
|
+
COMPILE = "transform.compile"
|
|
163
|
+
FORMAT = "transform.format"
|
|
164
|
+
BUNDLE = "transform.bundle"
|
|
165
|
+
TRANSPILE = "transform.transpile"
|
|
166
|
+
REFACTOR = "transform.refactor"
|
|
167
|
+
|
|
168
|
+
# generate.*
|
|
169
|
+
CODE_GEN = "generate.code"
|
|
170
|
+
SCAFFOLD = "generate.scaffold"
|
|
171
|
+
DOC_GEN = "generate.documentation"
|
|
172
|
+
|
|
173
|
+
# execute.*
|
|
174
|
+
RUN_SCRIPT = "execute.script"
|
|
175
|
+
RUN_SERVICE = "execute.service"
|
|
176
|
+
RUN_REPL = "execute.repl"
|
|
177
|
+
RUN_COMMAND = "execute.run_script"
|
|
178
|
+
|
|
179
|
+
# deliver.*
|
|
180
|
+
DEPLOY = "deliver.deploy"
|
|
181
|
+
PUBLISH = "deliver.publish"
|
|
182
|
+
PUSH = "deliver.push"
|
|
183
|
+
RELEASE = "deliver.release"
|
|
184
|
+
|
|
185
|
+
# configure.*
|
|
186
|
+
INSTALL = "configure.install"
|
|
187
|
+
SETUP = "configure.setup"
|
|
188
|
+
PROVISION = "configure.provision"
|
|
189
|
+
|
|
190
|
+
# persist.*
|
|
191
|
+
COMMIT = "persist.commit"
|
|
192
|
+
WRITE = "persist.write"
|
|
193
|
+
STAGE = "persist.stage"
|
|
194
|
+
INSTALL_PKG = "persist.install"
|
|
195
|
+
|
|
196
|
+
# modify.*
|
|
197
|
+
EDIT = "modify.edit"
|
|
198
|
+
MERGE = "modify.merge"
|
|
199
|
+
REBASE = "modify.rebase"
|
|
200
|
+
|
|
201
|
+
# remove.*
|
|
202
|
+
DELETE = "remove.delete"
|
|
203
|
+
TEARDOWN = "remove.teardown"
|
|
204
|
+
CLEAN = "remove.clean"
|
|
205
|
+
UNINSTALL = "remove.uninstall"
|
|
206
|
+
|
|
207
|
+
# analyze.*
|
|
208
|
+
PROFILE = "analyze.profile"
|
|
209
|
+
MEASURE = "analyze.measure"
|
|
210
|
+
DIFF = "analyze.diff"
|
|
211
|
+
|
|
212
|
+
# retrieve.* (additional subtypes for precision)
|
|
213
|
+
RETRIEVE_DIFF = "retrieve.diff"
|