@arkvenai/cli 0.5.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.
Files changed (135) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/README.md +304 -0
  3. package/dist/agents.d.ts +11 -0
  4. package/dist/agents.d.ts.map +1 -0
  5. package/dist/agents.js +76 -0
  6. package/dist/agents.js.map +1 -0
  7. package/dist/auftrag.d.ts +3 -0
  8. package/dist/auftrag.d.ts.map +1 -0
  9. package/dist/auftrag.js +45 -0
  10. package/dist/auftrag.js.map +1 -0
  11. package/dist/bauplan.d.ts +15 -0
  12. package/dist/bauplan.d.ts.map +1 -0
  13. package/dist/bauplan.js +219 -0
  14. package/dist/bauplan.js.map +1 -0
  15. package/dist/befehle.d.ts +12 -0
  16. package/dist/befehle.d.ts.map +1 -0
  17. package/dist/befehle.js +77 -0
  18. package/dist/befehle.js.map +1 -0
  19. package/dist/befund.d.ts +21 -0
  20. package/dist/befund.d.ts.map +1 -0
  21. package/dist/befund.js +107 -0
  22. package/dist/befund.js.map +1 -0
  23. package/dist/codeAblage.d.ts +31 -0
  24. package/dist/codeAblage.d.ts.map +1 -0
  25. package/dist/codeAblage.js +80 -0
  26. package/dist/codeAblage.js.map +1 -0
  27. package/dist/deklaration.d.ts +3 -0
  28. package/dist/deklaration.d.ts.map +1 -0
  29. package/dist/deklaration.js +14 -0
  30. package/dist/deklaration.js.map +1 -0
  31. package/dist/diff.d.ts +10 -0
  32. package/dist/diff.d.ts.map +1 -0
  33. package/dist/diff.js +72 -0
  34. package/dist/diff.js.map +1 -0
  35. package/dist/erkennung.d.ts +26 -0
  36. package/dist/erkennung.d.ts.map +1 -0
  37. package/dist/erkennung.js +174 -0
  38. package/dist/erkennung.js.map +1 -0
  39. package/dist/fix.d.ts +26 -0
  40. package/dist/fix.d.ts.map +1 -0
  41. package/dist/fix.js +101 -0
  42. package/dist/fix.js.map +1 -0
  43. package/dist/geteilt/bauplan/form.d.ts +100 -0
  44. package/dist/geteilt/bauplan/form.d.ts.map +1 -0
  45. package/dist/geteilt/bauplan/form.js +21 -0
  46. package/dist/geteilt/bauplan/form.js.map +1 -0
  47. package/dist/geteilt/bauplan/index.d.ts +4 -0
  48. package/dist/geteilt/bauplan/index.d.ts.map +1 -0
  49. package/dist/geteilt/bauplan/index.js +4 -0
  50. package/dist/geteilt/bauplan/index.js.map +1 -0
  51. package/dist/geteilt/bauplan/lesen.d.ts +6 -0
  52. package/dist/geteilt/bauplan/lesen.d.ts.map +1 -0
  53. package/dist/geteilt/bauplan/lesen.js +344 -0
  54. package/dist/geteilt/bauplan/lesen.js.map +1 -0
  55. package/dist/geteilt/bauplan/schreiben.d.ts +3 -0
  56. package/dist/geteilt/bauplan/schreiben.d.ts.map +1 -0
  57. package/dist/geteilt/bauplan/schreiben.js +80 -0
  58. package/dist/geteilt/bauplan/schreiben.js.map +1 -0
  59. package/dist/index.d.ts +3 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +352 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/init.d.ts +28 -0
  64. package/dist/init.d.ts.map +1 -0
  65. package/dist/init.js +324 -0
  66. package/dist/init.js.map +1 -0
  67. package/dist/login.d.ts +45 -0
  68. package/dist/login.d.ts.map +1 -0
  69. package/dist/login.js +162 -0
  70. package/dist/login.js.map +1 -0
  71. package/dist/mcp.d.ts +18 -0
  72. package/dist/mcp.d.ts.map +1 -0
  73. package/dist/mcp.js +115 -0
  74. package/dist/mcp.js.map +1 -0
  75. package/dist/neu.d.ts +17 -0
  76. package/dist/neu.d.ts.map +1 -0
  77. package/dist/neu.js +118 -0
  78. package/dist/neu.js.map +1 -0
  79. package/dist/npmrc.d.ts +9 -0
  80. package/dist/npmrc.d.ts.map +1 -0
  81. package/dist/npmrc.js +49 -0
  82. package/dist/npmrc.js.map +1 -0
  83. package/dist/projekte.d.ts +23 -0
  84. package/dist/projekte.d.ts.map +1 -0
  85. package/dist/projekte.js +82 -0
  86. package/dist/projekte.js.map +1 -0
  87. package/dist/pull.d.ts +15 -0
  88. package/dist/pull.d.ts.map +1 -0
  89. package/dist/pull.js +301 -0
  90. package/dist/pull.js.map +1 -0
  91. package/dist/push/bericht.d.ts +8 -0
  92. package/dist/push/bericht.d.ts.map +1 -0
  93. package/dist/push/bericht.js +85 -0
  94. package/dist/push/bericht.js.map +1 -0
  95. package/dist/push/form.d.ts +67 -0
  96. package/dist/push/form.d.ts.map +1 -0
  97. package/dist/push/form.js +6 -0
  98. package/dist/push/form.js.map +1 -0
  99. package/dist/push/medien.d.ts +7 -0
  100. package/dist/push/medien.d.ts.map +1 -0
  101. package/dist/push/medien.js +154 -0
  102. package/dist/push/medien.js.map +1 -0
  103. package/dist/push/sammeln.d.ts +34 -0
  104. package/dist/push/sammeln.d.ts.map +1 -0
  105. package/dist/push/sammeln.js +112 -0
  106. package/dist/push/sammeln.js.map +1 -0
  107. package/dist/push/verzeichnisse.d.ts +40 -0
  108. package/dist/push/verzeichnisse.d.ts.map +1 -0
  109. package/dist/push/verzeichnisse.js +158 -0
  110. package/dist/push/verzeichnisse.js.map +1 -0
  111. package/dist/push.d.ts +8 -0
  112. package/dist/push.d.ts.map +1 -0
  113. package/dist/push.js +306 -0
  114. package/dist/push.js.map +1 -0
  115. package/dist/starter.d.ts +4 -0
  116. package/dist/starter.d.ts.map +1 -0
  117. package/dist/starter.js +587 -0
  118. package/dist/starter.js.map +1 -0
  119. package/dist/tiefpruefung.d.ts +39 -0
  120. package/dist/tiefpruefung.d.ts.map +1 -0
  121. package/dist/tiefpruefung.js +56 -0
  122. package/dist/tiefpruefung.js.map +1 -0
  123. package/dist/vertrag.d.ts +6 -0
  124. package/dist/vertrag.d.ts.map +1 -0
  125. package/dist/vertrag.js +267 -0
  126. package/dist/vertrag.js.map +1 -0
  127. package/dist/vertragSpaet.d.ts +4 -0
  128. package/dist/vertragSpaet.d.ts.map +1 -0
  129. package/dist/vertragSpaet.js +158 -0
  130. package/dist/vertragSpaet.js.map +1 -0
  131. package/dist/vorlagen.d.ts +7 -0
  132. package/dist/vorlagen.d.ts.map +1 -0
  133. package/dist/vorlagen.js +83 -0
  134. package/dist/vorlagen.js.map +1 -0
  135. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;CACb;AASD,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,CAmC/E;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,EAAE,OAAW,EAAE,UAAe,EAAE,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/E,MAAM,EAAE,CA2BV"}
package/dist/diff.js ADDED
@@ -0,0 +1,72 @@
1
+ function zeilen(text) {
2
+ const z = text.replace(/\r\n/g, '\n').split('\n');
3
+ if (z.length > 0 && z[z.length - 1] === '')
4
+ z.pop();
5
+ return z;
6
+ }
7
+ export function vergleiche(vorherText, nachherText) {
8
+ const a = zeilen(vorherText);
9
+ const b = zeilen(nachherText);
10
+ if (a.length > 4000 || b.length > 4000) {
11
+ return [{ art: ' ', text: `(${a.length} Zeilen vorher, ${b.length} Zeilen nachher, zu groß für eine Anzeige)` }];
12
+ }
13
+ const t = Array.from({ length: a.length + 1 }, () => new Array(b.length + 1).fill(0));
14
+ for (let i = a.length - 1; i >= 0; i--) {
15
+ const jetzt = t[i];
16
+ const naechste = t[i + 1];
17
+ for (let j = b.length - 1; j >= 0; j--) {
18
+ jetzt[j] = a[i] === b[j] ? naechste[j + 1] + 1 : Math.max(naechste[j], jetzt[j + 1]);
19
+ }
20
+ }
21
+ const raus = [];
22
+ let i = 0;
23
+ let j = 0;
24
+ while (i < a.length && j < b.length) {
25
+ if (a[i] === b[j]) {
26
+ raus.push({ art: ' ', text: a[i] });
27
+ i++;
28
+ j++;
29
+ }
30
+ else if (t[i + 1][j] >= t[i][j + 1]) {
31
+ raus.push({ art: '-', text: a[i] });
32
+ i++;
33
+ }
34
+ else {
35
+ raus.push({ art: '+', text: b[j] });
36
+ j++;
37
+ }
38
+ }
39
+ while (i < a.length)
40
+ raus.push({ art: '-', text: a[i++] });
41
+ while (j < b.length)
42
+ raus.push({ art: '+', text: b[j++] });
43
+ return raus;
44
+ }
45
+ export function alsZeilen(vorher, nachher, { kontext = 2, hoechstens = 14 } = {}) {
46
+ const roh = vergleiche(vorher, nachher);
47
+ const zeigen = roh.map((_, k) => roh.some((n, m) => n.art !== ' ' && Math.abs(m - k) <= kontext));
48
+ const raus = [];
49
+ let ausgelassen = 0;
50
+ let luecke = false;
51
+ for (let k = 0; k < roh.length; k++) {
52
+ if (!zeigen[k]) {
53
+ luecke = true;
54
+ continue;
55
+ }
56
+ if (raus.length >= hoechstens) {
57
+ ausgelassen++;
58
+ continue;
59
+ }
60
+ if (luecke) {
61
+ raus.push(' ...');
62
+ luecke = false;
63
+ }
64
+ const z = roh[k];
65
+ raus.push(` ${z.art} ${z.text}`);
66
+ }
67
+ if (ausgelassen > 0) {
68
+ raus.push(` ... ${ausgelassen} weitere Zeile(n), die beim Übernehmen mitgeschrieben werden`);
69
+ }
70
+ return raus;
71
+ }
72
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export interface Merkmal {
2
+ wert?: boolean;
3
+ belege: string[];
4
+ frage?: {
5
+ text: string;
6
+ vorschlag: boolean;
7
+ };
8
+ }
9
+ export interface Erkennung {
10
+ server: Merkmal;
11
+ frontendBuild: Merkmal;
12
+ schema: Merkmal;
13
+ keinProjekt?: {
14
+ grund: string;
15
+ ausweg: string;
16
+ };
17
+ verbund?: {
18
+ kandidaten: string[];
19
+ };
20
+ lockfiles: string[];
21
+ }
22
+ export declare const FELDER: readonly ["server", "frontendBuild", "schema"];
23
+ export type Feld = (typeof FELDER)[number];
24
+ export declare const FELD_NAME: Record<Feld, string>;
25
+ export declare function erkenneHerkunft(wurzel: string): Erkennung;
26
+ //# sourceMappingURL=erkennung.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erkennung.d.ts","sourceRoot":"","sources":["../src/erkennung.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,MAAM,EAAE,MAAM,EAAE,CAAA;IAEhB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAA;CAC7C;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,OAAO,CAAA;IAEf,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAE/C,OAAO,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAElC,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,eAAO,MAAM,MAAM,gDAAiD,CAAA;AACpE,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1C,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAI1C,CAAA;AAqDD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CA+HzD"}
@@ -0,0 +1,174 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { lies, quelltext, serverKandidaten } from './vertrag.js';
4
+ export const FELDER = ['server', 'frontendBuild', 'schema'];
5
+ export const FELD_NAME = {
6
+ server: 'eigener Server',
7
+ frontendBuild: 'eigener Frontend-Bau',
8
+ schema: 'eigene Datenbank-Migrationen',
9
+ };
10
+ const SERVER_RAHMEN = ['express', 'fastify', 'koa', 'hono', '@hapi/hapi', 'restify', '@nestjs/core', 'polka', 'h3', 'connect'];
11
+ const BAU_WERKZEUG = ['vite', 'tailwindcss', 'postcss', 'webpack', 'parcel', 'rollup', 'esbuild', 'next', '@vitejs/plugin-react', '@sveltejs/kit'];
12
+ const SCHEMA_WERKZEUG = ['drizzle-kit', 'drizzle-orm', 'prisma', '@prisma/client', 'knex', 'typeorm', 'sequelize', 'node-pg-migrate', 'kysely'];
13
+ const BAU_KONFIG = [
14
+ 'vite.config.ts',
15
+ 'vite.config.js',
16
+ 'vite.config.mjs',
17
+ 'tailwind.config.js',
18
+ 'tailwind.config.ts',
19
+ 'tailwind.config.cjs',
20
+ 'postcss.config.js',
21
+ 'postcss.config.cjs',
22
+ 'postcss.config.mjs',
23
+ 'webpack.config.js',
24
+ 'next.config.js',
25
+ 'svelte.config.js',
26
+ ];
27
+ const LOCKFILES = ['package-lock.json', 'pnpm-lock.yaml', 'yarn.lock', 'bun.lockb'];
28
+ const da = (p) => fs.existsSync(p);
29
+ function ausAbhaengigkeiten(pkg, liste) {
30
+ const alle = { ...pkg.devDependencies, ...pkg.dependencies };
31
+ return liste.filter((n) => Boolean(alle[n]));
32
+ }
33
+ function migrationsOrdner(wurzel) {
34
+ for (const name of ['drizzle.config.ts', 'drizzle.config.js', 'drizzle.config.mjs']) {
35
+ const text = lies(path.join(wurzel, name));
36
+ const treffer = text?.match(/\bout\s*:\s*['"]([^'"]+)['"]/);
37
+ if (treffer?.[1])
38
+ return treffer[1].replace(/^\.\//, '').replace(/\/$/, '');
39
+ }
40
+ return 'drizzle';
41
+ }
42
+ function sqlDateien(ordner) {
43
+ try {
44
+ return fs.readdirSync(ordner).filter((f) => f.endsWith('.sql'));
45
+ }
46
+ catch {
47
+ return [];
48
+ }
49
+ }
50
+ export function erkenneHerkunft(wurzel) {
51
+ const leer = { belege: [] };
52
+ const lockfiles = LOCKFILES.filter((f) => da(path.join(wurzel, f)));
53
+ const pkgText = lies(path.join(wurzel, 'package.json'));
54
+ if (!pkgText) {
55
+ return {
56
+ server: leer,
57
+ frontendBuild: leer,
58
+ schema: leer,
59
+ lockfiles,
60
+ keinProjekt: {
61
+ grund: 'In diesem Verzeichnis liegt keine package.json, deshalb liess sich nichts messen.',
62
+ ausweg: 'Wechsle in das Wurzelverzeichnis deines Projekts und rufe `arkven init` dort erneut auf.',
63
+ },
64
+ };
65
+ }
66
+ let pkg;
67
+ try {
68
+ pkg = JSON.parse(pkgText);
69
+ }
70
+ catch (e) {
71
+ return {
72
+ server: leer,
73
+ frontendBuild: leer,
74
+ schema: leer,
75
+ lockfiles,
76
+ keinProjekt: {
77
+ grund: `Die package.json liess sich nicht lesen: ${String(e?.message ?? e)}`,
78
+ ausweg: 'Prüfe die Datei auf einen JSON-Fehler (häufig ein Komma zu viel) und rufe `arkven init` erneut auf.',
79
+ },
80
+ };
81
+ }
82
+ const hatSrc = da(path.join(wurzel, 'src'));
83
+ const kandidaten = serverKandidaten(wurzel);
84
+ if (pkg.workspaces || (!hatSrc && kandidaten.length > 0)) {
85
+ return { server: leer, frontendBuild: leer, schema: leer, lockfiles, verbund: { kandidaten } };
86
+ }
87
+ const src = hatSrc ? quelltext(wurzel) : '';
88
+ const hatEinstieg = da(path.join(wurzel, 'src', 'index.ts'));
89
+ const rahmen = ausAbhaengigkeiten(pkg, SERVER_RAHMEN);
90
+ const lauscht = /\.listen\s*\(|createServer\s*\(|\bserve\s*\(/.test(src);
91
+ const serverBelege = [
92
+ ...(hatEinstieg ? ['src/index.ts'] : []),
93
+ ...rahmen.map((r) => `${r} in den Abhängigkeiten`),
94
+ ...(lauscht ? ['der Quelltext öffnet einen Port'] : []),
95
+ ];
96
+ let server;
97
+ if (hatEinstieg && (rahmen.length > 0 || lauscht)) {
98
+ server = { wert: true, belege: serverBelege };
99
+ }
100
+ else if (!hatSrc && rahmen.length === 0) {
101
+ server = { wert: false, belege: ['kein src/, kein Server-Rahmen in den Abhängigkeiten'] };
102
+ }
103
+ else {
104
+ server = {
105
+ belege: serverBelege.length > 0 ? serverBelege : ['weder ein Einstieg src/index.ts noch ein Server-Rahmen'],
106
+ frage: {
107
+ text: rahmen.length > 0 || lauscht
108
+ ? 'Ein Server-Rahmen ist da, ein Einstieg `src/index.ts` fehlt. Bringt dieses Projekt seinen eigenen Server mit?'
109
+ : 'Hier liegt Quelltext, aber kein Einstieg `src/index.ts` und kein Server-Rahmen. Bringt dieses Projekt seinen eigenen Server mit?',
110
+ vorschlag: rahmen.length > 0 || lauscht,
111
+ },
112
+ };
113
+ }
114
+ const konfig = BAU_KONFIG.filter((f) => da(path.join(wurzel, f)));
115
+ const bauWerkzeug = ausAbhaengigkeiten(pkg, BAU_WERKZEUG);
116
+ const indexHtml = da(path.join(wurzel, 'index.html'));
117
+ const bauBelege = [
118
+ ...konfig,
119
+ ...bauWerkzeug.map((w) => `${w} in den Abhängigkeiten`),
120
+ ...(indexHtml ? ['index.html'] : []),
121
+ ];
122
+ let frontendBuild;
123
+ if (konfig.length > 0 || (bauWerkzeug.length > 0 && indexHtml)) {
124
+ frontendBuild = { wert: true, belege: bauBelege };
125
+ }
126
+ else if (bauBelege.length === 0) {
127
+ frontendBuild = { wert: false, belege: ['keine Bau-Konfiguration, kein Bau-Werkzeug, keine index.html'] };
128
+ }
129
+ else {
130
+ frontendBuild = {
131
+ belege: bauBelege,
132
+ frage: {
133
+ text: 'Ein Bau-Werkzeug ist da, eine eigene Bau-Konfiguration finde ich nicht. Baut dieses Projekt sein Frontend selbst?',
134
+ vorschlag: bauWerkzeug.length > 0,
135
+ },
136
+ };
137
+ }
138
+ const ordner = migrationsOrdner(wurzel);
139
+ const sql = sqlDateien(path.join(wurzel, ordner));
140
+ const journal = da(path.join(wurzel, ordner, 'meta', '_journal.json'));
141
+ const schemaWerkzeug = ausAbhaengigkeiten(pkg, SCHEMA_WERKZEUG);
142
+ const schemaBelege = [
143
+ ...(sql.length > 0 ? [`${sql.length} SQL-Datei(en) in ${ordner}/`] : []),
144
+ ...(journal ? [`${ordner}/meta/_journal.json`] : []),
145
+ ...schemaWerkzeug.map((w) => `${w} in den Abhängigkeiten`),
146
+ ];
147
+ let schema;
148
+ if (sql.length > 0 && journal) {
149
+ schema = { wert: true, belege: schemaBelege };
150
+ }
151
+ else if (sql.length > 0) {
152
+ schema = {
153
+ belege: schemaBelege,
154
+ frage: {
155
+ text: `In ${ordner}/ liegen ${sql.length} SQL-Datei(en), aber kein Journal (${ordner}/meta/_journal.json). Sollen deine Migrationen gefahren werden? Dann erzeuge das Journal mit \`npx drizzle-kit generate\`.`,
156
+ vorschlag: true,
157
+ },
158
+ };
159
+ }
160
+ else if (schemaWerkzeug.length > 0) {
161
+ schema = {
162
+ belege: schemaBelege,
163
+ frage: {
164
+ text: `Ein Schema-Werkzeug ist da (${schemaWerkzeug.join(', ')}), Migrations-Dateien in ${ordner}/ finde ich nicht. Bringt dieses Projekt eigene Migrationen mit?`,
165
+ vorschlag: false,
166
+ },
167
+ };
168
+ }
169
+ else {
170
+ schema = { wert: false, belege: [`keine Migrations-Dateien in ${ordner}/, kein Schema-Werkzeug`] };
171
+ }
172
+ return { server, frontendBuild, schema, lockfiles };
173
+ }
174
+ //# sourceMappingURL=erkennung.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erkennung.js","sourceRoot":"","sources":["../src/erkennung.ts"],"names":[],"mappings":"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"}
package/dist/fix.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import type { Befund } from './befund.js';
2
+ export interface Agent {
3
+ name: string;
4
+ fassung(): string | undefined;
5
+ fehltGrund: string;
6
+ lauf(wurzel: string, auftrag: string): {
7
+ status: number | null;
8
+ abgelaufen?: boolean;
9
+ };
10
+ }
11
+ export declare const claudeCode: Agent;
12
+ export declare const RUNDEN_ZEITLIMIT_MS: number;
13
+ export interface FixOptionen {
14
+ zusatzBefunde?: () => Promise<Befund[]>;
15
+ runden: number;
16
+ sage: (zeile: string) => void;
17
+ agent?: Agent;
18
+ }
19
+ export interface FixErgebnis {
20
+ behoben: string[];
21
+ offen: string[];
22
+ runden: number;
23
+ grund?: string;
24
+ }
25
+ export declare function fahreFix(wurzel: string, opt: FixOptionen): Promise<FixErgebnis>;
26
+ //# sourceMappingURL=fix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../src/fix.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAY,MAAM,aAAa,CAAA;AAEnD,MAAM,WAAW,KAAK;IAEpB,IAAI,EAAE,MAAM,CAAA;IAEZ,OAAO,IAAI,MAAM,GAAG,SAAS,CAAA;IAE7B,UAAU,EAAE,MAAM,CAAA;IAElB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACvF;AAED,eAAO,MAAM,UAAU,EAAE,KA4BxB,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAiB,CAAA;AAMjD,MAAM,WAAW,WAAW;IAE1B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACvC,MAAM,EAAE,MAAM,CAAA;IAEd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAE7B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IAEd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CA4ErF"}
package/dist/fix.js ADDED
@@ -0,0 +1,101 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { baueAuftrag } from './auftrag.js';
3
+ import { pruefeVertrag } from './vertrag.js';
4
+ import { fuerAgenten } from './befund.js';
5
+ export const claudeCode = {
6
+ name: 'Claude Code',
7
+ fassung() {
8
+ const r = spawnSync('claude', ['--version'], { shell: true, encoding: 'utf8' });
9
+ if (r.status !== 0 || !r.stdout)
10
+ return undefined;
11
+ return r.stdout.trim().split('\n')[0];
12
+ },
13
+ fehltGrund: 'Auf diesem Rechner ist Claude Code nicht erreichbar. So kommst du weiter: installiere es (npm install -g @anthropic-ai/claude-code) ' +
14
+ 'und melde dich mit `claude` an. Ohne Installation zeigt `arkven auftrag` denselben Arbeitsauftrag zum Weitergeben an einen beliebigen Agenten.',
15
+ lauf(wurzel, auftrag) {
16
+ const r = spawnSync('claude', ['-p', '--permission-mode', 'acceptEdits'], {
17
+ cwd: wurzel,
18
+ shell: true,
19
+ input: auftrag,
20
+ encoding: 'utf8',
21
+ stdio: ['pipe', 'inherit', 'inherit'],
22
+ timeout: RUNDEN_ZEITLIMIT_MS,
23
+ });
24
+ if (r.error && r.error.code === 'ETIMEDOUT') {
25
+ return { status: null, abgelaufen: true };
26
+ }
27
+ return { status: r.status };
28
+ },
29
+ };
30
+ export const RUNDEN_ZEITLIMIT_MS = 15 * 60 * 1000;
31
+ function offeneRegeln(e) {
32
+ return new Set(fuerAgenten(e.befunde).map((b) => b.regel));
33
+ }
34
+ export async function fahreFix(wurzel, opt) {
35
+ const agent = opt.agent ?? claudeCode;
36
+ const messe = async () => {
37
+ const e = pruefeVertrag(wurzel);
38
+ if (opt.zusatzBefunde)
39
+ e.befunde.push(...(await opt.zusatzBefunde()));
40
+ return e;
41
+ };
42
+ const start = await messe();
43
+ let offen = offeneRegeln(start);
44
+ const zuBeginn = new Set(offen);
45
+ if (offen.size === 0) {
46
+ const verweise = start.befunde.filter((b) => b.schwere === 'vertrag' && b.verweis);
47
+ if (verweise.length > 0) {
48
+ return {
49
+ behoben: [],
50
+ offen: verweise.map((b) => b.regel),
51
+ runden: 0,
52
+ grund: `Hier ist nichts, woran ein Agent arbeiten kann: ${verweise.length} Punkt(e) verweisen auf einen anderen Aufruf.\n` +
53
+ verweise.map((b) => ` • ${b.titel}\n ${b.ausweg}`).join('\n'),
54
+ };
55
+ }
56
+ return { behoben: [], offen: [], runden: 0, grund: 'Es blockiert nichts, es gibt nichts zu beheben.' };
57
+ }
58
+ const fassung = agent.fassung();
59
+ if (!fassung) {
60
+ return { behoben: [], offen: [...offen], runden: 0, grund: agent.fehltGrund };
61
+ }
62
+ opt.sage(`${agent.name} gefunden: ${fassung}`);
63
+ let runde = 0;
64
+ let grund;
65
+ while (runde < opt.runden && offen.size > 0) {
66
+ runde++;
67
+ opt.sage(`\nRunde ${runde} von ${opt.runden}: ${offen.size} Punkt(e) offen.`);
68
+ opt.sage(`${agent.name} arbeitet jetzt - das dauert meist Minuten und zeigt bis zum Ende nichts an. Abbrechen mit Strg-C.`);
69
+ const auftrag = baueAuftrag(await messe());
70
+ const r = agent.lauf(wurzel, auftrag);
71
+ if (r.abgelaufen) {
72
+ grund =
73
+ `${agent.name} hat in ${Math.round(RUNDEN_ZEITLIMIT_MS / 60000)} Minuten nichts abgeschlossen und wurde abgebrochen.
74
+ ` +
75
+ 'So kommst du weiter: `git diff` ansehen (angefangene Änderungen liegen dort) und den Auftrag mit `arkven auftrag` selbst an einen Agenten geben.';
76
+ break;
77
+ }
78
+ if (r.status !== 0) {
79
+ grund = `${agent.name} endete mit Rückgabewert ${r.status ?? '?'}. Die bisher erreichten Punkte stehen unten.`;
80
+ break;
81
+ }
82
+ const danach = offeneRegeln(await messe());
83
+ const vorher = offen;
84
+ offen = danach;
85
+ const weiter = [...vorher].filter((r2) => !danach.has(r2));
86
+ opt.sage(weiter.length > 0 ? `Gemessen: ${weiter.length} Punkt(e) behoben.` : 'Gemessen: kein Punkt hat sich bewegt.');
87
+ if (weiter.length === 0) {
88
+ grund = 'Diese Runde hat nichts bewegt, deshalb hört der Lauf hier auf statt dieselbe Anweisung zu wiederholen.';
89
+ break;
90
+ }
91
+ }
92
+ if (!grund && offen.size > 0)
93
+ grund = `Die ${opt.runden} Runden sind aufgebraucht.`;
94
+ return {
95
+ behoben: [...zuBeginn].filter((r) => !offen.has(r)),
96
+ offen: [...offen],
97
+ runden: runde,
98
+ grund,
99
+ };
100
+ }
101
+ //# sourceMappingURL=fix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix.js","sourceRoot":"","sources":["../src/fix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ export declare const BAUPLAN_DATEI = "arkven/bauplan.json";
2
+ export declare const VORGABEN_DATEI = "arkven/vorgaben.json";
3
+ export declare const TICKETS_DATEI = "arkven/tickets.json";
4
+ export declare const AUFTRAG_DATEI = "arkven/auftrag.md";
5
+ export declare const BAUPLAN_FORMAT = 1;
6
+ export declare const ARCHETYPEN: readonly ["dashboard", "list", "detail", "form", "board", "wizard", "auth", "settings", "calendar", "chat"];
7
+ export type DateiArchetyp = (typeof ARCHETYPEN)[number];
8
+ export declare const GRENZEN: {
9
+ readonly userGroups: 12;
10
+ readonly screens: 16;
11
+ readonly flows: 10;
12
+ readonly sections: 12;
13
+ readonly actions: 12;
14
+ readonly roles: 12;
15
+ readonly steps: 12;
16
+ readonly entitaeten: 16;
17
+ readonly felder: 24;
18
+ };
19
+ export interface DateiAbnahme {
20
+ at: number;
21
+ by?: string;
22
+ }
23
+ export interface DateiRolle {
24
+ name: string;
25
+ can: string;
26
+ rang?: number;
27
+ selbstRegistrierung?: boolean;
28
+ extern?: boolean;
29
+ marktseite?: 'kaeufer' | 'anbieter';
30
+ freigabePflichtig?: boolean;
31
+ }
32
+ export interface DateiScreen {
33
+ name: string;
34
+ purpose: string;
35
+ archetype: DateiArchetyp;
36
+ sections?: string[];
37
+ actions?: string[];
38
+ roles?: string[];
39
+ slug?: string;
40
+ criteria?: string[];
41
+ accepted?: DateiAbnahme;
42
+ }
43
+ export interface DateiFlowSchritt {
44
+ screen: string;
45
+ action: string;
46
+ }
47
+ export interface DateiFlow {
48
+ name: string;
49
+ role?: string;
50
+ steps: DateiFlowSchritt[];
51
+ accepted?: DateiAbnahme;
52
+ }
53
+ export interface DateiAiPower {
54
+ id: string;
55
+ accepted?: DateiAbnahme;
56
+ }
57
+ export interface DateiBaustein {
58
+ id: string;
59
+ abgewaehlt?: boolean;
60
+ ergaenzt?: boolean;
61
+ }
62
+ export interface DateiFeld {
63
+ name: string;
64
+ typ: 'text' | 'zahl' | 'jaNein' | 'zeitpunkt' | 'liste';
65
+ }
66
+ export interface DateiEntitaet {
67
+ name: string;
68
+ zweck?: string;
69
+ felder: DateiFeld[];
70
+ sichtbarFuer?: string[];
71
+ schreibenDuerfen?: string[];
72
+ accepted?: DateiAbnahme;
73
+ }
74
+ export interface DateiBauplan {
75
+ arkvenBauplan: number;
76
+ status: 'draft' | 'confirmed';
77
+ version: number;
78
+ confirmedAt?: number;
79
+ summary?: string;
80
+ tenancy?: string;
81
+ userGroups: DateiRolle[];
82
+ entitaeten?: DateiEntitaet[];
83
+ screens: DateiScreen[];
84
+ flows: DateiFlow[];
85
+ aiPowers?: DateiAiPower[];
86
+ bausteine?: DateiBaustein[];
87
+ }
88
+ export interface BauplanBefund {
89
+ regel: string;
90
+ text: string;
91
+ ausweg: string;
92
+ }
93
+ export type BauplanLesung = {
94
+ ok: true;
95
+ bauplan: DateiBauplan;
96
+ } | {
97
+ ok: false;
98
+ befunde: BauplanBefund[];
99
+ };
100
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/geteilt/bauplan/form.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export const BAUPLAN_DATEI = 'arkven/bauplan.json';
2
+ export const VORGABEN_DATEI = 'arkven/vorgaben.json';
3
+ export const TICKETS_DATEI = 'arkven/tickets.json';
4
+ export const AUFTRAG_DATEI = 'arkven/auftrag.md';
5
+ export const BAUPLAN_FORMAT = 1;
6
+ export const ARCHETYPEN = [
7
+ 'dashboard', 'list', 'detail', 'form', 'board', 'wizard', 'auth', 'settings', 'calendar', 'chat',
8
+ ];
9
+ const ROLLEN = 12;
10
+ export const GRENZEN = {
11
+ userGroups: ROLLEN,
12
+ screens: 16,
13
+ flows: 10,
14
+ sections: 12,
15
+ actions: 12,
16
+ roles: ROLLEN,
17
+ steps: 12,
18
+ entitaeten: 16,
19
+ felder: 24,
20
+ };
21
+ //# sourceMappingURL=form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../../src/geteilt/bauplan/form.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAA;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,sBAAsB,CAAA;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,qBAAqB,CAAA;AAClD,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAEhD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA;AAE/B,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;CACxF,CAAA;AAIV,MAAM,MAAM,GAAG,EAAE,CAAA;AAEjB,MAAM,CAAC,MAAM,OAAO,GAAG;IAErB,UAAU,EAAE,MAAM;IAElB,OAAO,EAAE,EAAE;IAEX,KAAK,EAAE,EAAE;IAET,QAAQ,EAAE,EAAE;IAEZ,OAAO,EAAE,EAAE;IAEX,KAAK,EAAE,MAAM;IAEb,KAAK,EAAE,EAAE;IAET,UAAU,EAAE,EAAE;IAEd,MAAM,EAAE,EAAE;CACF,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './form.js';
2
+ export * from './lesen.js';
3
+ export * from './schreiben.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/geteilt/bauplan/index.ts"],"names":[],"mappings":"AACA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './form.js';
2
+ export * from './lesen.js';
3
+ export * from './schreiben.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/geteilt/bauplan/index.ts"],"names":[],"mappings":"AACA,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { type BauplanBefund, type BauplanLesung, type DateiBauplan } from './form.js';
2
+ export declare function pruefeBauplan(roh: unknown): BauplanBefund[];
3
+ export declare function formeBauplan(roh: Record<string, unknown>): DateiBauplan;
4
+ export declare function formeBauplanAusText(text: string): DateiBauplan | null;
5
+ export declare function leseBauplanText(text: string): BauplanLesung;
6
+ //# sourceMappingURL=lesen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lesen.d.ts","sourceRoot":"","sources":["../../../src/geteilt/bauplan/lesen.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAAE,KAAK,aAAa,EACC,KAAK,YAAY,EACzD,MAAM,WAAW,CAAA;AAoLlB,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,EAAE,CAU3D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAkIvE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQrE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAiB3D"}