@agent-teams/engineering-foundation 0.1.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 (47) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +32 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +173 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/config.d.ts +18 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +106 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/errors.d.ts +6 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +9 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/index.d.ts +7 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +4 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/local-mode/consumer-policy.d.ts +13 -0
  20. package/dist/local-mode/consumer-policy.d.ts.map +1 -0
  21. package/dist/local-mode/consumer-policy.js +227 -0
  22. package/dist/local-mode/consumer-policy.js.map +1 -0
  23. package/dist/local-mode/index.d.ts +7 -0
  24. package/dist/local-mode/index.d.ts.map +1 -0
  25. package/dist/local-mode/index.js +5 -0
  26. package/dist/local-mode/index.js.map +1 -0
  27. package/dist/local-mode/inspection.d.ts +7 -0
  28. package/dist/local-mode/inspection.d.ts.map +1 -0
  29. package/dist/local-mode/inspection.js +224 -0
  30. package/dist/local-mode/inspection.js.map +1 -0
  31. package/dist/local-mode/process-runner.d.ts +5 -0
  32. package/dist/local-mode/process-runner.d.ts.map +1 -0
  33. package/dist/local-mode/process-runner.js +20 -0
  34. package/dist/local-mode/process-runner.js.map +1 -0
  35. package/dist/local-mode/service.d.ts +16 -0
  36. package/dist/local-mode/service.d.ts.map +1 -0
  37. package/dist/local-mode/service.js +503 -0
  38. package/dist/local-mode/service.js.map +1 -0
  39. package/dist/local-mode/types.d.ts +62 -0
  40. package/dist/local-mode/types.d.ts.map +1 -0
  41. package/dist/local-mode/types.js +7 -0
  42. package/dist/local-mode/types.js.map +1 -0
  43. package/dist/package-self-check.d.ts +15 -0
  44. package/dist/package-self-check.d.ts.map +1 -0
  45. package/dist/package-self-check.js +172 -0
  46. package/dist/package-self-check.js.map +1 -0
  47. package/package.json +56 -0
@@ -0,0 +1,172 @@
1
+ import { createRequire } from "node:module";
2
+ import { readFile, stat } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { pathToFileURL } from "node:url";
5
+ import { FoundationError } from "./errors.js";
6
+ import { isExactVersion } from "./local-mode/consumer-policy.js";
7
+ import { FOUNDATION_LOCAL_MODE_PROTOCOL_VERSION, FOUNDATION_PACKAGE_NAME } from "./local-mode/types.js";
8
+ export const FOUNDATION_METADATA_SCHEMA_VERSION = 1;
9
+ function isRecord(value) {
10
+ return typeof value === "object" && value !== null && !Array.isArray(value);
11
+ }
12
+ function assertStringRecord(value, field) {
13
+ if (!isRecord(value)) {
14
+ throw new FoundationError("PACKAGE_INVALID", `Foundation target ${field} must be an object.`);
15
+ }
16
+ const entries = Object.entries(value);
17
+ if (entries.some(([name, specifier]) => name.length === 0 ||
18
+ typeof specifier !== "string" ||
19
+ specifier.length === 0)) {
20
+ throw new FoundationError("PACKAGE_INVALID", `Foundation target ${field} must contain non-empty string specifiers.`);
21
+ }
22
+ return Object.fromEntries(entries);
23
+ }
24
+ function validateExport(exportsField, exportPath, expected) {
25
+ const candidate = exportsField[exportPath];
26
+ if (typeof expected === "string") {
27
+ if (candidate !== expected) {
28
+ throw new FoundationError("PACKAGE_INVALID", `Foundation target export ${exportPath} must resolve to ${expected}.`);
29
+ }
30
+ return;
31
+ }
32
+ if (!isRecord(candidate)) {
33
+ throw new FoundationError("PACKAGE_INVALID", `Foundation target export ${exportPath} is invalid.`);
34
+ }
35
+ for (const [condition, destination] of Object.entries(expected)) {
36
+ if (candidate[condition] !== destination) {
37
+ throw new FoundationError("PACKAGE_INVALID", `Foundation target export ${exportPath}.${condition} must resolve to ${destination}.`);
38
+ }
39
+ }
40
+ }
41
+ function parseProtocolMetadata(manifest) {
42
+ const metadata = manifest.agentTeamsFoundation;
43
+ if (!isRecord(metadata) ||
44
+ metadata.metadataSchemaVersion !== FOUNDATION_METADATA_SCHEMA_VERSION ||
45
+ typeof metadata.localModeProtocolVersion !== "number" ||
46
+ !Number.isSafeInteger(metadata.localModeProtocolVersion) ||
47
+ metadata.localModeProtocolVersion < 1 ||
48
+ !Array.isArray(metadata.compatibleLocalModeProtocolVersions) ||
49
+ metadata.compatibleLocalModeProtocolVersions.length === 0 ||
50
+ metadata.compatibleLocalModeProtocolVersions.some((version) => typeof version !== "number" ||
51
+ !Number.isSafeInteger(version) ||
52
+ version < 1)) {
53
+ throw new FoundationError("PACKAGE_INVALID", "Foundation target protocol compatibility metadata is invalid.");
54
+ }
55
+ const compatibleLocalModeProtocolVersions = [
56
+ ...new Set(metadata.compatibleLocalModeProtocolVersions)
57
+ ].toSorted((left, right) => left - right);
58
+ if (!compatibleLocalModeProtocolVersions.includes(FOUNDATION_LOCAL_MODE_PROTOCOL_VERSION)) {
59
+ throw new FoundationError("PACKAGE_INVALID", `Foundation target does not support local-mode protocol ${FOUNDATION_LOCAL_MODE_PROTOCOL_VERSION}.`);
60
+ }
61
+ return {
62
+ metadataSchemaVersion: FOUNDATION_METADATA_SCHEMA_VERSION,
63
+ localModeProtocolVersion: metadata.localModeProtocolVersion,
64
+ compatibleLocalModeProtocolVersions
65
+ };
66
+ }
67
+ export async function inspectFoundationPackage(packageRoot) {
68
+ let manifest;
69
+ try {
70
+ manifest = JSON.parse(await readFile(join(packageRoot, "package.json"), "utf8"));
71
+ }
72
+ catch (error) {
73
+ throw new FoundationError("PACKAGE_INVALID", "Foundation target package.json cannot be read.", { cause: error });
74
+ }
75
+ if (!isRecord(manifest)) {
76
+ throw new FoundationError("PACKAGE_INVALID", "Foundation target package.json must contain an object.");
77
+ }
78
+ if (manifest.name !== FOUNDATION_PACKAGE_NAME ||
79
+ typeof manifest.version !== "string" ||
80
+ !isExactVersion(manifest.version) ||
81
+ manifest.type !== "module") {
82
+ throw new FoundationError("PACKAGE_INVALID", "Foundation target package identity, version, or module type is invalid.");
83
+ }
84
+ if (!isRecord(manifest.bin) ||
85
+ manifest.bin["agent-teams-foundation"] !== "./dist/cli.js") {
86
+ throw new FoundationError("PACKAGE_INVALID", "Foundation target CLI entry is invalid.");
87
+ }
88
+ if (!isRecord(manifest.exports)) {
89
+ throw new FoundationError("PACKAGE_INVALID", "Foundation target exports must be an object.");
90
+ }
91
+ validateExport(manifest.exports, ".", {
92
+ types: "./dist/index.d.ts",
93
+ import: "./dist/index.js"
94
+ });
95
+ validateExport(manifest.exports, "./local-mode", {
96
+ types: "./dist/local-mode/index.d.ts",
97
+ import: "./dist/local-mode/index.js"
98
+ });
99
+ validateExport(manifest.exports, "./package.json", "./package.json");
100
+ for (const outputPath of [
101
+ "dist/cli.js",
102
+ "dist/index.d.ts",
103
+ "dist/index.js",
104
+ "dist/local-mode/index.d.ts",
105
+ "dist/local-mode/index.js"
106
+ ]) {
107
+ try {
108
+ if (!(await stat(join(packageRoot, outputPath))).isFile()) {
109
+ throw new Error("not a regular file");
110
+ }
111
+ }
112
+ catch (error) {
113
+ throw new FoundationError("PACKAGE_INVALID", `Foundation target build output is unavailable: ${outputPath}.`, { cause: error });
114
+ }
115
+ }
116
+ const [rootExports, localModeExports] = await Promise.all([
117
+ import(pathToFileURL(join(packageRoot, "dist", "index.js")).href),
118
+ import(pathToFileURL(join(packageRoot, "dist", "local-mode", "index.js")).href)
119
+ ]);
120
+ for (const [exportName, candidate] of [
121
+ ["defineFoundationConfig", rootExports.defineFoundationConfig],
122
+ ["parseFoundationConfig", rootExports.parseFoundationConfig],
123
+ ["FoundationError", rootExports.FoundationError],
124
+ [
125
+ "FoundationLocalModeService",
126
+ localModeExports.FoundationLocalModeService
127
+ ],
128
+ ["inspectFoundationMode", localModeExports.inspectFoundationMode]
129
+ ]) {
130
+ if (typeof candidate !== "function") {
131
+ throw new FoundationError("PACKAGE_INVALID", `Foundation target runtime export is unavailable: ${exportName}.`);
132
+ }
133
+ }
134
+ const protocolMetadata = parseProtocolMetadata(manifest);
135
+ const runtimeDependencies = assertStringRecord(manifest.dependencies, "dependencies");
136
+ const requireFromTarget = createRequire(join(packageRoot, "package.json"));
137
+ for (const dependencyName of Object.keys(runtimeDependencies)) {
138
+ try {
139
+ requireFromTarget.resolve(dependencyName);
140
+ }
141
+ catch (error) {
142
+ throw new FoundationError("PACKAGE_INVALID", `Foundation target runtime dependency cannot be resolved: ${dependencyName}.`, { cause: error });
143
+ }
144
+ }
145
+ return {
146
+ ok: true,
147
+ ...protocolMetadata,
148
+ packageName: FOUNDATION_PACKAGE_NAME,
149
+ packageVersion: manifest.version,
150
+ exportPaths: Object.keys(manifest.exports).toSorted(),
151
+ runtimeDependencies: Object.fromEntries(Object.entries(runtimeDependencies).toSorted(([left], [right]) => left.localeCompare(right)))
152
+ };
153
+ }
154
+ export function parseFoundationPackageSelfCheck(value) {
155
+ if (!isRecord(value) ||
156
+ value.ok !== true ||
157
+ value.metadataSchemaVersion !== FOUNDATION_METADATA_SCHEMA_VERSION ||
158
+ value.packageName !== FOUNDATION_PACKAGE_NAME ||
159
+ typeof value.packageVersion !== "string" ||
160
+ !isExactVersion(value.packageVersion) ||
161
+ typeof value.localModeProtocolVersion !== "number" ||
162
+ !Array.isArray(value.compatibleLocalModeProtocolVersions) ||
163
+ value.compatibleLocalModeProtocolVersions.some((version) => typeof version !== "number") ||
164
+ !Array.isArray(value.exportPaths) ||
165
+ value.exportPaths.some((path) => typeof path !== "string") ||
166
+ !isRecord(value.runtimeDependencies) ||
167
+ Object.values(value.runtimeDependencies).some((specifier) => typeof specifier !== "string")) {
168
+ throw new FoundationError("PACKAGE_INVALID", "Foundation target self-check output is invalid.");
169
+ }
170
+ return value;
171
+ }
172
+ //# sourceMappingURL=package-self-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-self-check.js","sourceRoot":"","sources":["../src/package-self-check.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@agent-teams/engineering-foundation",
3
+ "version": "0.1.0",
4
+ "description": "Versioned engineering policy, tooling, and conformance for Agent Teams repositories.",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "sideEffects": false,
8
+ "bin": {
9
+ "agent-teams-foundation": "./dist/cli.js"
10
+ },
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ },
16
+ "./local-mode": {
17
+ "types": "./dist/local-mode/index.d.ts",
18
+ "import": "./dist/local-mode/index.js"
19
+ },
20
+ "./package.json": "./package.json"
21
+ },
22
+ "files": [
23
+ "dist",
24
+ "LICENSE",
25
+ "README.md"
26
+ ],
27
+ "engines": {
28
+ "node": ">=24.18.0 <25",
29
+ "pnpm": ">=11.17.0 <12"
30
+ },
31
+ "publishConfig": {
32
+ "access": "public",
33
+ "provenance": true,
34
+ "registry": "https://registry.npmjs.org/"
35
+ },
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "git+https://github.com/agent-teams-ai/engineering-foundation.git",
39
+ "directory": "packages/engineering-foundation"
40
+ },
41
+ "homepage": "https://github.com/agent-teams-ai/engineering-foundation#readme",
42
+ "bugs": {
43
+ "url": "https://github.com/agent-teams-ai/engineering-foundation/issues"
44
+ },
45
+ "agentTeamsFoundation": {
46
+ "metadataSchemaVersion": 1,
47
+ "localModeProtocolVersion": 1,
48
+ "compatibleLocalModeProtocolVersions": [
49
+ 1
50
+ ]
51
+ },
52
+ "dependencies": {
53
+ "proper-lockfile": "4.1.2",
54
+ "yaml": "2.9.0"
55
+ }
56
+ }