pi-apexlang 0.2.0 → 0.2.1

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/README.md CHANGED
@@ -90,6 +90,19 @@ code** requires an explicit target mode:
90
90
  Without GUI support, the tool always stops after checking and reports import
91
91
  as a follow-up.
92
92
 
93
+ When refreshing a full APEXlang export, run one SQLcl export with explicit
94
+ replacement semantics:
95
+
96
+ ```text
97
+ apex export -applicationid <id> -exptype APEXLANG -split -dir <absolute-parent-directory> -force
98
+ ```
99
+
100
+ `-dir` names the parent directory; SQLcl creates the application-alias folder
101
+ below it. The `-force` flag removes and recreates that export folder, so a
102
+ repeat export produces one current snapshot instead of collision copies such
103
+ as `application_1.apx` and `p00005_1.apx`. Because this replaces the complete
104
+ local export, preserve or import any local-only work before refreshing it.
105
+
93
106
  All app paths must remain inside the active Pi workspace. The adapter rejects
94
107
  traversal, app-tree symlinks, and multiply linked files on mutating vocabulary
95
108
  fixes; verifies live workspace input against `deployments/default.json`; and
@@ -20,6 +20,8 @@ const CHECK_ONLY_CHOICE = "Check APEXlang code (recommended) — stop after the
20
20
  const IMPORT_CHOICE = "Check and import APEXlang code — revalidate and import in one SQLcl session";
21
21
  const UPDATE_EXISTING_CHOICE = "Update an existing app — require one proven remote target";
22
22
  const CREATE_NEW_CHOICE = "Create a new app — require proof that the alias is absent";
23
+ const EXPORT_OVERWRITE_GUIDELINE =
24
+ "For a full APEXlang export refresh, run exactly one SQLcl `apex export` command with `-force` and `-dir` set to the absolute parent directory. Never export without `-force` into an existing destination: SQLcl can collision-suffix every artifact as `*_1.apx` instead of replacing the snapshot.";
23
25
 
24
26
  function trimOutput(value: string, outputRoot?: string): string {
25
27
  if (value.length <= MAX_TOOL_OUTPUT) return value;
@@ -110,6 +112,7 @@ export function createApexlangTool(overrides: Partial<ApexlangDependencies> = {}
110
112
  promptGuidelines: [
111
113
  "Load the apexlang skill before using the apexlang tool and follow its routing and Missing Inputs rules.",
112
114
  "Use apexlang workspace_probe before app-scoped APEXlang work.",
115
+ EXPORT_OVERWRITE_GUIDELINE,
113
116
  "Use apexlang runtime_validate only after the user provides both db_connection_name and the matching APEX workspace_name; import requires the tool's separate post-check GUI choice."
114
117
  ],
115
118
  executionMode: "sequential",
@@ -425,6 +428,7 @@ export {
425
428
  CHECK_ONLY_CHOICE,
426
429
  IMPORT_CHOICE,
427
430
  CREATE_NEW_CHOICE,
431
+ EXPORT_OVERWRITE_GUIDELINE,
428
432
  UPDATE_EXISTING_CHOICE,
429
433
  actionWritesProject,
430
434
  confirmationMessage,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-apexlang",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "APEXlang support for pi, powered by Oracle's public APEXlang skill.",
5
5
  "type": "module",
6
6
  "license": "UPL-1.0",