@ductape/cli 0.2.22 → 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 (103) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +7 -0
  3. package/dist/commands/generate.js +1 -1
  4. package/dist/commands/migrate-codebase.d.ts +176 -0
  5. package/dist/commands/migrate-codebase.js +753 -0
  6. package/dist/commands/migration-artifact.d.ts +32 -0
  7. package/dist/commands/migration-artifact.js +48 -0
  8. package/dist/commands/migration-assurance.d.ts +10 -0
  9. package/dist/commands/migration-assurance.js +120 -0
  10. package/dist/commands/migration-database.d.ts +21 -0
  11. package/dist/commands/migration-database.js +162 -0
  12. package/dist/commands/migration-e2e.d.ts +68 -0
  13. package/dist/commands/migration-e2e.js +189 -0
  14. package/dist/commands/migration-environments.d.ts +20 -0
  15. package/dist/commands/migration-environments.js +58 -0
  16. package/dist/commands/migration-generated.d.ts +68 -0
  17. package/dist/commands/migration-generated.js +217 -0
  18. package/dist/commands/migration-portfolio.d.ts +88 -0
  19. package/dist/commands/migration-portfolio.js +223 -0
  20. package/dist/commands/migration-products.d.ts +23 -0
  21. package/dist/commands/migration-products.js +88 -0
  22. package/dist/commands/migration-review.d.ts +248 -0
  23. package/dist/commands/migration-review.js +624 -0
  24. package/dist/commands/migration-secrets.d.ts +24 -0
  25. package/dist/commands/migration-secrets.js +93 -0
  26. package/dist/commands/migration-slice.d.ts +132 -0
  27. package/dist/commands/migration-slice.js +266 -0
  28. package/dist/commands/migration-verification.d.ts +12 -0
  29. package/dist/commands/migration-verification.js +194 -0
  30. package/dist/commands/products.d.ts +1 -0
  31. package/dist/commands/products.js +33 -1
  32. package/dist/commands/secrets.d.ts +8 -0
  33. package/dist/commands/secrets.js +44 -0
  34. package/dist/index.js +354 -2
  35. package/dist/lib/integrations.js +6 -1
  36. package/dist/lib/migration-artifact.d.ts +13 -0
  37. package/dist/lib/migration-artifact.js +103 -0
  38. package/package.json +8 -1
  39. package/API_PARITY.md +0 -58
  40. package/DB_MIGRATE_PLAN.md +0 -223
  41. package/ductape.example.ts +0 -18
  42. package/src/commands/apply.ts +0 -153
  43. package/src/commands/apps-import.ts +0 -43
  44. package/src/commands/apps.ts +0 -92
  45. package/src/commands/cloud.ts +0 -68
  46. package/src/commands/completion.ts +0 -119
  47. package/src/commands/db-migrate.ts +0 -209
  48. package/src/commands/db-schema.ts +0 -429
  49. package/src/commands/db.ts +0 -63
  50. package/src/commands/generate.ts +0 -74
  51. package/src/commands/graph.ts +0 -51
  52. package/src/commands/init.ts +0 -39
  53. package/src/commands/install.ts +0 -76
  54. package/src/commands/link.ts +0 -84
  55. package/src/commands/login.ts +0 -145
  56. package/src/commands/logout.ts +0 -7
  57. package/src/commands/platform.ts +0 -123
  58. package/src/commands/products.ts +0 -228
  59. package/src/commands/profiles.ts +0 -23
  60. package/src/commands/resources.ts +0 -213
  61. package/src/commands/secrets.ts +0 -46
  62. package/src/commands/unlink.ts +0 -15
  63. package/src/commands/whoami.ts +0 -27
  64. package/src/commands/workspaces.ts +0 -98
  65. package/src/index.ts +0 -523
  66. package/src/lib/api-client.ts +0 -88
  67. package/src/lib/app-import.ts +0 -82
  68. package/src/lib/apply-loaders.ts +0 -30
  69. package/src/lib/config.ts +0 -230
  70. package/src/lib/context-store.ts +0 -77
  71. package/src/lib/db-methods.ts +0 -56
  72. package/src/lib/db-types.ts +0 -104
  73. package/src/lib/encryption.ts +0 -12
  74. package/src/lib/forms/enums.ts +0 -52
  75. package/src/lib/forms/index.ts +0 -8
  76. package/src/lib/forms/prompt.ts +0 -209
  77. package/src/lib/forms/schemas.ts +0 -288
  78. package/src/lib/forms/types.ts +0 -27
  79. package/src/lib/http.ts +0 -76
  80. package/src/lib/integrations.ts +0 -105
  81. package/src/lib/interactive-opts.ts +0 -13
  82. package/src/lib/migration-files.ts +0 -58
  83. package/src/lib/output.ts +0 -39
  84. package/src/lib/platform-api.ts +0 -209
  85. package/src/lib/proxy/context.ts +0 -94
  86. package/src/lib/proxy/db-proxy.ts +0 -40
  87. package/src/lib/proxy/graph-proxy.ts +0 -64
  88. package/src/lib/proxy/sdk-proxy.ts +0 -58
  89. package/src/lib/read-body.ts +0 -57
  90. package/src/lib/resources.ts +0 -160
  91. package/src/lib/schema-loader.ts +0 -152
  92. package/src/lib/snippets.ts +0 -165
  93. package/src/lib/templates.ts +0 -157
  94. package/src/lib/workspace-context.ts +0 -43
  95. package/src/lib/workspaces.ts +0 -283
  96. package/test/apply-loaders.test.ts +0 -40
  97. package/test/encryption.test.ts +0 -20
  98. package/test/forms.test.ts +0 -25
  99. package/test/http.test.ts +0 -15
  100. package/test/platform-api.test.ts +0 -42
  101. package/test/resources.test.ts +0 -23
  102. package/test/workspace-resolve.test.ts +0 -29
  103. 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
@@ -19,7 +19,7 @@ export async function runGeneratePayload(opts) {
19
19
  method: opts.method,
20
20
  targets,
21
21
  include_session: true,
22
- include_cache: true,
22
+ include_cache: false,
23
23
  schema_mode: 'best_effort',
24
24
  });
25
25
  printJson(result, Boolean(opts.json));
@@ -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 {};