@ductape/cli 0.2.23 → 0.3.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 (101) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +7 -0
  3. package/dist/commands/migrate-codebase.d.ts +176 -0
  4. package/dist/commands/migrate-codebase.js +753 -0
  5. package/dist/commands/migration-artifact.d.ts +32 -0
  6. package/dist/commands/migration-artifact.js +48 -0
  7. package/dist/commands/migration-assurance.d.ts +10 -0
  8. package/dist/commands/migration-assurance.js +120 -0
  9. package/dist/commands/migration-database.d.ts +21 -0
  10. package/dist/commands/migration-database.js +162 -0
  11. package/dist/commands/migration-e2e.d.ts +68 -0
  12. package/dist/commands/migration-e2e.js +189 -0
  13. package/dist/commands/migration-environments.d.ts +20 -0
  14. package/dist/commands/migration-environments.js +58 -0
  15. package/dist/commands/migration-generated.d.ts +68 -0
  16. package/dist/commands/migration-generated.js +217 -0
  17. package/dist/commands/migration-portfolio.d.ts +88 -0
  18. package/dist/commands/migration-portfolio.js +223 -0
  19. package/dist/commands/migration-products.d.ts +23 -0
  20. package/dist/commands/migration-products.js +88 -0
  21. package/dist/commands/migration-review.d.ts +248 -0
  22. package/dist/commands/migration-review.js +624 -0
  23. package/dist/commands/migration-secrets.d.ts +24 -0
  24. package/dist/commands/migration-secrets.js +93 -0
  25. package/dist/commands/migration-slice.d.ts +132 -0
  26. package/dist/commands/migration-slice.js +266 -0
  27. package/dist/commands/migration-verification.d.ts +12 -0
  28. package/dist/commands/migration-verification.js +194 -0
  29. package/dist/commands/products.d.ts +1 -0
  30. package/dist/commands/products.js +33 -1
  31. package/dist/commands/secrets.d.ts +8 -0
  32. package/dist/commands/secrets.js +44 -0
  33. package/dist/index.js +354 -2
  34. package/dist/lib/migration-artifact.d.ts +13 -0
  35. package/dist/lib/migration-artifact.js +103 -0
  36. package/package.json +8 -1
  37. package/API_PARITY.md +0 -58
  38. package/DB_MIGRATE_PLAN.md +0 -223
  39. package/ductape.example.ts +0 -18
  40. package/src/commands/apply.ts +0 -153
  41. package/src/commands/apps-import.ts +0 -43
  42. package/src/commands/apps.ts +0 -92
  43. package/src/commands/cloud.ts +0 -68
  44. package/src/commands/completion.ts +0 -119
  45. package/src/commands/db-migrate.ts +0 -209
  46. package/src/commands/db-schema.ts +0 -429
  47. package/src/commands/db.ts +0 -63
  48. package/src/commands/generate.ts +0 -74
  49. package/src/commands/graph.ts +0 -51
  50. package/src/commands/init.ts +0 -39
  51. package/src/commands/install.ts +0 -76
  52. package/src/commands/link.ts +0 -84
  53. package/src/commands/login.ts +0 -145
  54. package/src/commands/logout.ts +0 -7
  55. package/src/commands/platform.ts +0 -123
  56. package/src/commands/products.ts +0 -228
  57. package/src/commands/profiles.ts +0 -23
  58. package/src/commands/resources.ts +0 -213
  59. package/src/commands/secrets.ts +0 -46
  60. package/src/commands/unlink.ts +0 -15
  61. package/src/commands/whoami.ts +0 -27
  62. package/src/commands/workspaces.ts +0 -98
  63. package/src/index.ts +0 -523
  64. package/src/lib/api-client.ts +0 -88
  65. package/src/lib/app-import.ts +0 -82
  66. package/src/lib/apply-loaders.ts +0 -30
  67. package/src/lib/config.ts +0 -230
  68. package/src/lib/context-store.ts +0 -77
  69. package/src/lib/db-methods.ts +0 -56
  70. package/src/lib/db-types.ts +0 -104
  71. package/src/lib/encryption.ts +0 -12
  72. package/src/lib/forms/enums.ts +0 -52
  73. package/src/lib/forms/index.ts +0 -8
  74. package/src/lib/forms/prompt.ts +0 -209
  75. package/src/lib/forms/schemas.ts +0 -288
  76. package/src/lib/forms/types.ts +0 -27
  77. package/src/lib/http.ts +0 -76
  78. package/src/lib/integrations.ts +0 -110
  79. package/src/lib/interactive-opts.ts +0 -13
  80. package/src/lib/migration-files.ts +0 -58
  81. package/src/lib/output.ts +0 -39
  82. package/src/lib/platform-api.ts +0 -209
  83. package/src/lib/proxy/context.ts +0 -94
  84. package/src/lib/proxy/db-proxy.ts +0 -40
  85. package/src/lib/proxy/graph-proxy.ts +0 -64
  86. package/src/lib/proxy/sdk-proxy.ts +0 -58
  87. package/src/lib/read-body.ts +0 -57
  88. package/src/lib/resources.ts +0 -160
  89. package/src/lib/schema-loader.ts +0 -152
  90. package/src/lib/snippets.ts +0 -165
  91. package/src/lib/templates.ts +0 -157
  92. package/src/lib/workspace-context.ts +0 -43
  93. package/src/lib/workspaces.ts +0 -283
  94. package/test/apply-loaders.test.ts +0 -40
  95. package/test/encryption.test.ts +0 -20
  96. package/test/forms.test.ts +0 -25
  97. package/test/http.test.ts +0 -15
  98. package/test/platform-api.test.ts +0 -42
  99. package/test/resources.test.ts +0 -23
  100. package/test/workspace-resolve.test.ts +0 -29
  101. package/tsconfig.json +0 -15
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.0 - 2026-07-26
4
+
5
+ - Added AI-led migration planning with new-codebase defaults and immutable original E2E gates.
6
+ - Added review ledgers, parity slices, multi-repository verification, SCC partition proposals, and semantic database evidence.
7
+ - Added frontend, session, resilience, component, runtime, SDK, generated/vendor, and third-party assurance matrices.
8
+ - Added verified product-environment create/update commands, secured artifacts, Ed25519 signatures, and parallel-review merging.
9
+
3
10
  ## Unreleased
4
11
 
5
12
  ### Added
package/README.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @ductape/cli
2
2
 
3
+ ## AI-led codebase migration
4
+
5
+ Create and pass project-level E2E tests against the original codebase first, then bind them with
6
+ `ductape migration-e2e init`. Run `ductape migrate-codebase --e2e-baseline <manifest>`; the default is a
7
+ separate new codebase. Migration commands record advisory or verification evidence and never generate
8
+ application source. Finish with the unchanged original suite through `migration-e2e final`.
9
+
3
10
  Terminal interface for Ductape — **same transport as the Workbench** (encrypted sdk-proxy / db-proxy / graph-proxy).
4
11
 
5
12
  ## Install
@@ -0,0 +1,176 @@
1
+ type MigrationMode = 'in-place' | 'new-codebase';
2
+ type Language = 'typescript' | 'go' | 'java' | 'dotnet';
3
+ interface MigrationPlan {
4
+ version: 2;
5
+ artifact_kind: 'ai_review_bootstrap';
6
+ authority: 'advisory_only';
7
+ source: string;
8
+ mode: MigrationMode;
9
+ destination: string;
10
+ product: {
11
+ tag: string;
12
+ name: string;
13
+ exists?: boolean;
14
+ created?: boolean;
15
+ };
16
+ target_database: string;
17
+ languages: Language[];
18
+ frameworks: string[];
19
+ workspace_boundaries: Array<{
20
+ system: 'bazel' | 'buck' | 'pants' | 'nx' | 'turborepo' | 'maven' | 'gradle' | 'dotnet';
21
+ evidence: string[];
22
+ requires_ai_review: true;
23
+ }>;
24
+ workspace_units: Array<{
25
+ manifest: string;
26
+ kind: 'node' | 'go' | 'maven' | 'gradle' | 'dotnet' | 'nx';
27
+ nearest_boundary?: string;
28
+ ownership_status: 'contextual_review_required';
29
+ }>;
30
+ generated_source_hints: Array<{
31
+ file: string;
32
+ evidence: string;
33
+ confidence: 'low';
34
+ requires_ai_review: true;
35
+ }>;
36
+ scan_safety: {
37
+ symlinks_followed: false;
38
+ symlinks_skipped: string[];
39
+ git_submodules: Array<{
40
+ name: string;
41
+ path: string;
42
+ url?: string;
43
+ }>;
44
+ };
45
+ scan_policy: {
46
+ max_file_bytes: number;
47
+ binary_files: 'exclude';
48
+ include_patterns: string[];
49
+ exclude_patterns: string[];
50
+ exclusions: Array<{
51
+ file: string;
52
+ reason: string;
53
+ }>;
54
+ };
55
+ environments: string[];
56
+ secrets: Array<{
57
+ key: string;
58
+ source: string;
59
+ environment: string;
60
+ value: '[REDACTED]';
61
+ }>;
62
+ secret_references: Array<{
63
+ key: string;
64
+ source: string;
65
+ system: 'docker' | 'kubernetes' | 'github' | 'gitlab' | 'jenkins' | 'circleci' | 'azure_devops' | 'spring' | 'dotnet' | 'terraform' | 'aws' | 'gcp' | 'azure';
66
+ environment: string;
67
+ value: '[NOT_READ]';
68
+ requires_ai_review: true;
69
+ }>;
70
+ potential_secret_exposures: Array<{
71
+ source: string;
72
+ line: number;
73
+ kind: 'password' | 'token' | 'secret' | 'private_key' | 'connection_string';
74
+ fingerprint: string;
75
+ value: '[NOT_RETURNED]';
76
+ confidence: 'low';
77
+ requires_human_security_review: true;
78
+ }>;
79
+ deterministic_hints: {
80
+ databases: Array<{
81
+ evidence: string;
82
+ kind: string;
83
+ confidence: 'low';
84
+ requires_ai_review: true;
85
+ }>;
86
+ third_party_apis: Array<{
87
+ host: string;
88
+ occurrences: number;
89
+ methods: string[];
90
+ paths: string[];
91
+ recommended_app_tag: string;
92
+ confidence: 'low';
93
+ requires_ai_review: true;
94
+ }>;
95
+ };
96
+ existing_migrations: string[];
97
+ existing_schemas: string[];
98
+ migration_imports: Array<{
99
+ source: string;
100
+ checksum: string;
101
+ order: number;
102
+ status: 'manual_review_required';
103
+ reason: string;
104
+ }>;
105
+ conversion_warnings: string[];
106
+ review_queue: Array<{
107
+ file: string;
108
+ review_status: 'pending';
109
+ inspect_for: string[];
110
+ safety: 'names_only' | 'normal';
111
+ }>;
112
+ evidence_ledger_template: {
113
+ file: string;
114
+ purpose: string;
115
+ dependencies: string[];
116
+ interfaces: string[];
117
+ functional_parity_requirements: string[];
118
+ operational_parity_requirements: string[];
119
+ findings: Array<{
120
+ kind: string;
121
+ evidence: string;
122
+ location: {
123
+ start_line: number;
124
+ end_line: number;
125
+ };
126
+ symbol: {
127
+ kind: 'module' | 'class' | 'interface' | 'function' | 'method' | 'field' | 'route' | 'event' | 'schema' | 'other';
128
+ name: string;
129
+ qualified_name?: string;
130
+ };
131
+ classification: 'observed' | 'inferred' | 'proposed' | 'confirmed';
132
+ confidence: 'low' | 'medium' | 'high';
133
+ requires_followup: string[];
134
+ }>;
135
+ decision: 'pending';
136
+ };
137
+ ai_working_standards: {
138
+ global: string[];
139
+ languages: Record<Language, string[]>;
140
+ };
141
+ output_paths: {
142
+ plan: string;
143
+ migration_evidence: string;
144
+ review_ledger_template: string;
145
+ guide: string;
146
+ };
147
+ next_steps: string[];
148
+ }
149
+ export declare function writeMigrationGuidance(plan: MigrationPlan): void;
150
+ export declare function inspectMigrationCodebase(opts: {
151
+ source: string;
152
+ mode?: MigrationMode;
153
+ destination?: string;
154
+ product?: string;
155
+ name?: string;
156
+ database?: string;
157
+ maxFileBytes?: number;
158
+ include?: string[];
159
+ exclude?: string[];
160
+ }): MigrationPlan;
161
+ export declare function runMigrateCodebase(opts: {
162
+ source?: string;
163
+ e2eBaseline: string;
164
+ mode?: MigrationMode;
165
+ destination?: string;
166
+ product?: string;
167
+ name?: string;
168
+ database?: string;
169
+ maxFileBytes?: number;
170
+ include?: string[];
171
+ exclude?: string[];
172
+ ensureProduct?: boolean;
173
+ write?: boolean;
174
+ json?: boolean;
175
+ }): Promise<void>;
176
+ export {};