@kadi.build/core 0.9.0 → 0.11.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 (45) hide show
  1. package/README.md +424 -1
  2. package/agent.json +19 -0
  3. package/dist/agent-json.d.ts +231 -0
  4. package/dist/agent-json.d.ts.map +1 -0
  5. package/dist/agent-json.js +554 -0
  6. package/dist/agent-json.js.map +1 -0
  7. package/dist/client.d.ts +34 -0
  8. package/dist/client.d.ts.map +1 -1
  9. package/dist/client.js +50 -0
  10. package/dist/client.js.map +1 -1
  11. package/dist/errors.d.ts +1 -1
  12. package/dist/errors.d.ts.map +1 -1
  13. package/dist/errors.js.map +1 -1
  14. package/dist/index.d.ts +5 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +8 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/process-manager.d.ts +235 -0
  19. package/dist/process-manager.d.ts.map +1 -0
  20. package/dist/process-manager.js +647 -0
  21. package/dist/process-manager.js.map +1 -0
  22. package/dist/stdio-framing.d.ts +88 -0
  23. package/dist/stdio-framing.d.ts.map +1 -0
  24. package/dist/stdio-framing.js +194 -0
  25. package/dist/stdio-framing.js.map +1 -0
  26. package/dist/transports/stdio.d.ts.map +1 -1
  27. package/dist/transports/stdio.js +3 -181
  28. package/dist/transports/stdio.js.map +1 -1
  29. package/dist/types.d.ts +256 -0
  30. package/dist/types.d.ts.map +1 -1
  31. package/dist/utils.d.ts +107 -0
  32. package/dist/utils.d.ts.map +1 -0
  33. package/dist/utils.js +212 -0
  34. package/dist/utils.js.map +1 -0
  35. package/package.json +3 -1
  36. package/scripts/symlink.mjs +131 -0
  37. package/src/agent-json.ts +655 -0
  38. package/src/client.ts +56 -0
  39. package/src/errors.ts +15 -0
  40. package/src/index.ts +32 -0
  41. package/src/process-manager.ts +821 -0
  42. package/src/stdio-framing.ts +227 -0
  43. package/src/transports/stdio.ts +4 -221
  44. package/src/types.ts +277 -0
  45. package/src/utils.ts +246 -0
package/dist/types.d.ts CHANGED
@@ -914,4 +914,260 @@ export interface EmitOptions {
914
914
  */
915
915
  network?: string;
916
916
  }
917
+ /**
918
+ * Lifecycle scripts in agent.json.
919
+ * These are executed by kadi-install and kadi-run at various stages.
920
+ */
921
+ export interface AgentJsonScripts {
922
+ /** Run before setup — environment checks, secret retrieval */
923
+ preflight?: string;
924
+ /** Install dependencies and build */
925
+ setup?: string;
926
+ /** Start the agent/ability */
927
+ start?: string;
928
+ /** Stop the agent/ability */
929
+ stop?: string;
930
+ /** Development mode start */
931
+ dev?: string;
932
+ /** Cleanup generated files */
933
+ clean?: string;
934
+ /** Any other custom scripts */
935
+ [key: string]: string | undefined;
936
+ }
937
+ /**
938
+ * Container build profile in agent.json.
939
+ */
940
+ export interface AgentJsonBuildProfile {
941
+ /** Base image (e.g., 'node:22-slim') */
942
+ from: string;
943
+ /** Target platform (e.g., 'linux/amd64') */
944
+ platform?: string;
945
+ /** KADI CLI version to install in container */
946
+ cli?: string;
947
+ /** RUN commands for Dockerfile */
948
+ run?: string[];
949
+ /** CMD for the container */
950
+ cmd?: string[];
951
+ /** Additional fields */
952
+ [key: string]: unknown;
953
+ }
954
+ /**
955
+ * Deployment profile in agent.json.
956
+ */
957
+ export interface AgentJsonDeployProfile {
958
+ /** Deployment target (e.g., 'local', 'akash') */
959
+ target: string;
960
+ /** Container engine for local deployments (e.g., 'docker') */
961
+ engine?: string;
962
+ /** Network name for Akash deployments */
963
+ network?: string;
964
+ /** Deposit amount for Akash */
965
+ deposit?: string;
966
+ /** Service definitions */
967
+ services?: Record<string, unknown>;
968
+ /** Secret delivery configuration */
969
+ secrets?: Record<string, unknown>;
970
+ /** Additional fields */
971
+ [key: string]: unknown;
972
+ }
973
+ /**
974
+ * Full agent.json schema — union of all known fields across the ecosystem.
975
+ *
976
+ * Agent.json files can exist in three locations:
977
+ * 1. **Project root** — the agent's own config
978
+ * 2. **Installed ability** — an ability's config within abilities/
979
+ * 3. **KADI home** — global CLI config at ~/.kadi/
980
+ *
981
+ * @example
982
+ * ```typescript
983
+ * const agentJson: AgentJson = {
984
+ * name: 'my-agent',
985
+ * version: '1.0.0',
986
+ * type: 'ability',
987
+ * entrypoint: 'dist/index.js',
988
+ * abilities: { 'secret-ability': '^0.9.0' },
989
+ * scripts: { setup: 'npm install && npm run build', start: 'node dist/index.js' },
990
+ * deploy: { local: { target: 'local', engine: 'docker' } },
991
+ * };
992
+ * ```
993
+ */
994
+ export interface AgentJson {
995
+ /** Name of the agent/ability/plugin (required) */
996
+ name: string;
997
+ /** Semver version */
998
+ version?: string;
999
+ /** Human-readable description */
1000
+ description?: string;
1001
+ /** License identifier */
1002
+ license?: string;
1003
+ /** Package type */
1004
+ type?: 'ability' | 'plugin' | 'agent';
1005
+ /** Entry point file for native loading */
1006
+ entrypoint?: string;
1007
+ /** Alternate entry field (used in some Python projects) */
1008
+ entry?: string;
1009
+ /** Git repository URL */
1010
+ repo?: string;
1011
+ /** Archive download URL */
1012
+ lib?: string;
1013
+ /** CLI commands this plugin provides */
1014
+ commands?: string[];
1015
+ /** Ability dependencies (name → semver range) */
1016
+ abilities?: Record<string, string>;
1017
+ /** Broker connections (name → URL or BrokerEntry) */
1018
+ brokers?: Record<string, string | {
1019
+ url: string;
1020
+ networks?: string[];
1021
+ }>;
1022
+ /** Lifecycle scripts */
1023
+ scripts?: AgentJsonScripts;
1024
+ /** Container build profiles */
1025
+ build?: Record<string, AgentJsonBuildProfile>;
1026
+ /** Deployment profiles */
1027
+ deploy?: Record<string, AgentJsonDeployProfile>;
1028
+ /** CLI plugin registrations */
1029
+ cliPlugins?: Record<string, unknown>;
1030
+ /** Extensible — any additional fields */
1031
+ [key: string]: unknown;
1032
+ }
1033
+ /**
1034
+ * Options for creating an AgentJsonManager.
1035
+ */
1036
+ export interface AgentJsonManagerOptions {
1037
+ /** Explicit project root. If omitted, auto-detected via findProjectRoot(). */
1038
+ projectRoot?: string;
1039
+ /** Custom KADI home path. Default: ~/.kadi */
1040
+ kadiHome?: string;
1041
+ /** If true, creates agent.json files that don't exist on first write. Default: true */
1042
+ createOnWrite?: boolean;
1043
+ }
1044
+ /**
1045
+ * Options for reading an ability's agent.json.
1046
+ */
1047
+ export interface ReadAbilityOptions {
1048
+ /** Specific field to read (dot-notation path). */
1049
+ field?: string;
1050
+ /** Specific version to target when multiple versions are installed. */
1051
+ version?: string;
1052
+ }
1053
+ /**
1054
+ * Summary info about an installed ability.
1055
+ */
1056
+ export interface AbilityInfo {
1057
+ /** Ability name */
1058
+ name: string;
1059
+ /** Installed version */
1060
+ version: string;
1061
+ /** Absolute path to the ability directory */
1062
+ path: string;
1063
+ }
1064
+ /**
1065
+ * Resolved paths for all known agent.json files.
1066
+ */
1067
+ export interface AgentJsonPaths {
1068
+ /** Path to project root agent.json */
1069
+ project: string;
1070
+ /** Path to KADI home agent.json */
1071
+ home: string;
1072
+ /** Map of "name@version" → absolute path to agent.json */
1073
+ abilities: Record<string, string>;
1074
+ }
1075
+ /**
1076
+ * Execution mode for a managed process.
1077
+ *
1078
+ * - **headless**: Fire-and-forget. No communication channel. Best for builds, cleanup.
1079
+ * - **piped**: stdout/stderr are streamed back. Best for monitoring deploys, tailing logs.
1080
+ * - **bridge**: Full JSON-RPC stdio bridge. Best for interactive tools, worker agents.
1081
+ */
1082
+ export type ProcessMode = 'headless' | 'piped' | 'bridge';
1083
+ /**
1084
+ * Lifecycle state of a managed process.
1085
+ */
1086
+ export type ProcessState = 'running' | 'exited' | 'killed' | 'errored';
1087
+ /**
1088
+ * Options for spawning a managed process.
1089
+ */
1090
+ export interface SpawnOptions {
1091
+ /** Shell command to execute */
1092
+ command: string;
1093
+ /** Arguments to the command */
1094
+ args?: string[];
1095
+ /** Working directory */
1096
+ cwd?: string;
1097
+ /** Environment variables (merged with process.env) */
1098
+ env?: Record<string, string>;
1099
+ /** Execution mode */
1100
+ mode: ProcessMode;
1101
+ /** Timeout in ms — auto-kills if exceeded. 0 = no timeout. Default: 0 */
1102
+ timeout?: number;
1103
+ /** Grace period before SIGKILL after SIGTERM (ms). Default: 5000 */
1104
+ killGracePeriod?: number;
1105
+ /** Maximum output buffer size in bytes (piped mode). Default: 10MB */
1106
+ maxOutputBuffer?: number;
1107
+ }
1108
+ /**
1109
+ * Information about a managed process.
1110
+ */
1111
+ export interface ProcessInfo {
1112
+ /** Unique identifier (the name passed to spawn) */
1113
+ id: string;
1114
+ /** OS process ID */
1115
+ pid: number;
1116
+ /** Current lifecycle state */
1117
+ state: ProcessState;
1118
+ /** Execution mode */
1119
+ mode: ProcessMode;
1120
+ /** When the process was started */
1121
+ startedAt: Date;
1122
+ /** When the process ended (null if still running) */
1123
+ endedAt: Date | null;
1124
+ /** Exit code (null if still running or killed by signal) */
1125
+ exitCode: number | null;
1126
+ /** Signal that killed the process (null if exited normally) */
1127
+ signal: string | null;
1128
+ /** Duration in ms (null if still running) */
1129
+ duration: number | null;
1130
+ /** The command that was run */
1131
+ command: string;
1132
+ /** Arguments passed to the command */
1133
+ args: string[];
1134
+ /** Working directory */
1135
+ cwd: string;
1136
+ }
1137
+ /**
1138
+ * Exit information for a completed process.
1139
+ */
1140
+ export interface ProcessExitInfo {
1141
+ /** Exit code (null if killed by signal) */
1142
+ exitCode: number | null;
1143
+ /** Signal that killed the process (null if exited normally) */
1144
+ signal: string | null;
1145
+ /** Duration in ms from start to exit */
1146
+ duration: number;
1147
+ }
1148
+ /**
1149
+ * Buffered output from a piped process.
1150
+ */
1151
+ export interface ProcessOutput {
1152
+ /** All captured stdout data */
1153
+ stdout: string;
1154
+ /** All captured stderr data */
1155
+ stderr: string;
1156
+ }
1157
+ /**
1158
+ * Options for listing processes.
1159
+ */
1160
+ export interface ProcessListOptions {
1161
+ /** Filter by lifecycle state */
1162
+ state?: ProcessState;
1163
+ /** Filter by execution mode */
1164
+ mode?: ProcessMode;
1165
+ }
1166
+ /**
1167
+ * Options for pruning dead processes.
1168
+ */
1169
+ export interface ProcessPruneOptions {
1170
+ /** Remove exited processes older than this many seconds */
1171
+ olderThan?: number;
1172
+ }
917
1173
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Dot-path utility functions for kadi-core
3
+ *
4
+ * Provides get/set/delete operations on nested objects using dot-notation paths.
5
+ * Used by AgentJsonManager for field-level reads and writes.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const obj = { deploy: { local: { target: 'docker' } } };
10
+ *
11
+ * getByPath(obj, 'deploy.local.target');
12
+ * // → 'docker'
13
+ *
14
+ * setByPath(obj, 'deploy.staging.target', 'akash');
15
+ * // obj is now: { deploy: { local: { target: 'docker' }, staging: { target: 'akash' } } }
16
+ *
17
+ * deleteByPath(obj, 'deploy.staging');
18
+ * // obj is now: { deploy: { local: { target: 'docker' } } }
19
+ * ```
20
+ */
21
+ /**
22
+ * Split a dot-notation path into segments.
23
+ *
24
+ * If the full path exists as a literal key in the object, it takes precedence
25
+ * over dot-splitting. This handles the (rare) case where a key literally
26
+ * contains a dot.
27
+ *
28
+ * @param path - Dot-notation path (e.g., 'deploy.local.services')
29
+ * @returns Array of path segments
30
+ */
31
+ export declare function splitPath(path: string): string[];
32
+ /**
33
+ * Get a value from a nested object by dot-notation path.
34
+ *
35
+ * @param obj - The object to read from
36
+ * @param path - Dot-notation path (e.g., 'deploy.local.target')
37
+ * @returns The value at the path, or undefined if not found
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const config = { deploy: { local: { target: 'docker' } } };
42
+ *
43
+ * getByPath(config, 'deploy.local.target'); // 'docker'
44
+ * getByPath(config, 'deploy.local'); // { target: 'docker' }
45
+ * getByPath(config, 'missing'); // undefined
46
+ * getByPath(config, 'deploy.missing.deep'); // undefined
47
+ * ```
48
+ */
49
+ export declare function getByPath(obj: Record<string, unknown>, path: string): unknown;
50
+ /**
51
+ * Deep merge two objects. Arrays and scalars are replaced, not merged.
52
+ *
53
+ * @param target - The object to merge into
54
+ * @param source - The object to merge from
55
+ * @returns The merged target object
56
+ */
57
+ export declare function deepMerge(target: Record<string, unknown>, source: Record<string, unknown>): Record<string, unknown>;
58
+ /**
59
+ * Set a value in a nested object by dot-notation path.
60
+ *
61
+ * Creates intermediate objects as needed. For object values, performs
62
+ * a deep merge with existing values (preserving sibling keys).
63
+ * For scalars and arrays, replaces the value.
64
+ *
65
+ * @param obj - The object to modify (mutated in place)
66
+ * @param path - Dot-notation path (e.g., 'deploy.staging.target')
67
+ * @param value - The value to set
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const config = { deploy: { local: { target: 'docker', engine: 'docker' } } };
72
+ *
73
+ * // Set a scalar — replaces
74
+ * setByPath(config, 'deploy.local.target', 'akash');
75
+ * // { deploy: { local: { target: 'akash', engine: 'docker' } } }
76
+ *
77
+ * // Set an object — deep merges
78
+ * setByPath(config, 'deploy.local', { network: 'mainnet' });
79
+ * // { deploy: { local: { target: 'akash', engine: 'docker', network: 'mainnet' } } }
80
+ *
81
+ * // Set on non-existent path — creates intermediates
82
+ * setByPath(config, 'build.arm64.from', 'node:22-slim');
83
+ * // { deploy: {...}, build: { arm64: { from: 'node:22-slim' } } }
84
+ * ```
85
+ */
86
+ export declare function setByPath(obj: Record<string, unknown>, path: string, value: unknown): void;
87
+ /**
88
+ * Delete a key from a nested object by dot-notation path.
89
+ *
90
+ * @param obj - The object to modify (mutated in place)
91
+ * @param path - Dot-notation path to the key to delete
92
+ * @returns true if the key was found and deleted, false otherwise
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const config = { deploy: { local: { target: 'docker' }, staging: { target: 'akash' } } };
97
+ *
98
+ * deleteByPath(config, 'deploy.staging');
99
+ * // config is now: { deploy: { local: { target: 'docker' } } }
100
+ * // returns true
101
+ *
102
+ * deleteByPath(config, 'missing.key');
103
+ * // returns false
104
+ * ```
105
+ */
106
+ export declare function deleteByPath(obj: Record<string, unknown>, path: string): boolean;
107
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGhD;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAiB7E;AAMD;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwBzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,IAAI,CAwCN;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CA4BhF"}
package/dist/utils.js ADDED
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Dot-path utility functions for kadi-core
3
+ *
4
+ * Provides get/set/delete operations on nested objects using dot-notation paths.
5
+ * Used by AgentJsonManager for field-level reads and writes.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const obj = { deploy: { local: { target: 'docker' } } };
10
+ *
11
+ * getByPath(obj, 'deploy.local.target');
12
+ * // → 'docker'
13
+ *
14
+ * setByPath(obj, 'deploy.staging.target', 'akash');
15
+ * // obj is now: { deploy: { local: { target: 'docker' }, staging: { target: 'akash' } } }
16
+ *
17
+ * deleteByPath(obj, 'deploy.staging');
18
+ * // obj is now: { deploy: { local: { target: 'docker' } } }
19
+ * ```
20
+ */
21
+ // ═══════════════════════════════════════════════════════════════════════
22
+ // PATH PARSING
23
+ // ═══════════════════════════════════════════════════════════════════════
24
+ /**
25
+ * Split a dot-notation path into segments.
26
+ *
27
+ * If the full path exists as a literal key in the object, it takes precedence
28
+ * over dot-splitting. This handles the (rare) case where a key literally
29
+ * contains a dot.
30
+ *
31
+ * @param path - Dot-notation path (e.g., 'deploy.local.services')
32
+ * @returns Array of path segments
33
+ */
34
+ export function splitPath(path) {
35
+ if (!path)
36
+ return [];
37
+ return path.split('.');
38
+ }
39
+ // ═══════════════════════════════════════════════════════════════════════
40
+ // GET
41
+ // ═══════════════════════════════════════════════════════════════════════
42
+ /**
43
+ * Get a value from a nested object by dot-notation path.
44
+ *
45
+ * @param obj - The object to read from
46
+ * @param path - Dot-notation path (e.g., 'deploy.local.target')
47
+ * @returns The value at the path, or undefined if not found
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const config = { deploy: { local: { target: 'docker' } } };
52
+ *
53
+ * getByPath(config, 'deploy.local.target'); // 'docker'
54
+ * getByPath(config, 'deploy.local'); // { target: 'docker' }
55
+ * getByPath(config, 'missing'); // undefined
56
+ * getByPath(config, 'deploy.missing.deep'); // undefined
57
+ * ```
58
+ */
59
+ export function getByPath(obj, path) {
60
+ // Check if the full path exists as a literal key first
61
+ if (path in obj) {
62
+ return obj[path];
63
+ }
64
+ const segments = splitPath(path);
65
+ let current = obj;
66
+ for (const segment of segments) {
67
+ if (current === null || current === undefined || typeof current !== 'object') {
68
+ return undefined;
69
+ }
70
+ current = current[segment];
71
+ }
72
+ return current;
73
+ }
74
+ // ═══════════════════════════════════════════════════════════════════════
75
+ // SET
76
+ // ═══════════════════════════════════════════════════════════════════════
77
+ /**
78
+ * Deep merge two objects. Arrays and scalars are replaced, not merged.
79
+ *
80
+ * @param target - The object to merge into
81
+ * @param source - The object to merge from
82
+ * @returns The merged target object
83
+ */
84
+ export function deepMerge(target, source) {
85
+ for (const key of Object.keys(source)) {
86
+ const sourceVal = source[key];
87
+ const targetVal = target[key];
88
+ if (sourceVal !== null &&
89
+ typeof sourceVal === 'object' &&
90
+ !Array.isArray(sourceVal) &&
91
+ targetVal !== null &&
92
+ typeof targetVal === 'object' &&
93
+ !Array.isArray(targetVal)) {
94
+ // Both are plain objects — recurse
95
+ target[key] = deepMerge(targetVal, sourceVal);
96
+ }
97
+ else {
98
+ // Scalar, array, or type mismatch — replace
99
+ target[key] = sourceVal;
100
+ }
101
+ }
102
+ return target;
103
+ }
104
+ /**
105
+ * Set a value in a nested object by dot-notation path.
106
+ *
107
+ * Creates intermediate objects as needed. For object values, performs
108
+ * a deep merge with existing values (preserving sibling keys).
109
+ * For scalars and arrays, replaces the value.
110
+ *
111
+ * @param obj - The object to modify (mutated in place)
112
+ * @param path - Dot-notation path (e.g., 'deploy.staging.target')
113
+ * @param value - The value to set
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * const config = { deploy: { local: { target: 'docker', engine: 'docker' } } };
118
+ *
119
+ * // Set a scalar — replaces
120
+ * setByPath(config, 'deploy.local.target', 'akash');
121
+ * // { deploy: { local: { target: 'akash', engine: 'docker' } } }
122
+ *
123
+ * // Set an object — deep merges
124
+ * setByPath(config, 'deploy.local', { network: 'mainnet' });
125
+ * // { deploy: { local: { target: 'akash', engine: 'docker', network: 'mainnet' } } }
126
+ *
127
+ * // Set on non-existent path — creates intermediates
128
+ * setByPath(config, 'build.arm64.from', 'node:22-slim');
129
+ * // { deploy: {...}, build: { arm64: { from: 'node:22-slim' } } }
130
+ * ```
131
+ */
132
+ export function setByPath(obj, path, value) {
133
+ const segments = splitPath(path);
134
+ if (segments.length === 0)
135
+ return;
136
+ // Walk to the parent of the target key, creating intermediates
137
+ let current = obj;
138
+ for (let i = 0; i < segments.length - 1; i++) {
139
+ const segment = segments[i];
140
+ const next = current[segment];
141
+ if (next === null || next === undefined || typeof next !== 'object' || Array.isArray(next)) {
142
+ // Create intermediate object
143
+ const newObj = {};
144
+ current[segment] = newObj;
145
+ current = newObj;
146
+ }
147
+ else {
148
+ current = next;
149
+ }
150
+ }
151
+ const lastSegment = segments[segments.length - 1];
152
+ const existing = current[lastSegment];
153
+ // Deep merge if both existing and new are plain objects
154
+ if (value !== null &&
155
+ typeof value === 'object' &&
156
+ !Array.isArray(value) &&
157
+ existing !== null &&
158
+ typeof existing === 'object' &&
159
+ !Array.isArray(existing)) {
160
+ current[lastSegment] = deepMerge(existing, value);
161
+ }
162
+ else {
163
+ current[lastSegment] = value;
164
+ }
165
+ }
166
+ // ═══════════════════════════════════════════════════════════════════════
167
+ // DELETE
168
+ // ═══════════════════════════════════════════════════════════════════════
169
+ /**
170
+ * Delete a key from a nested object by dot-notation path.
171
+ *
172
+ * @param obj - The object to modify (mutated in place)
173
+ * @param path - Dot-notation path to the key to delete
174
+ * @returns true if the key was found and deleted, false otherwise
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * const config = { deploy: { local: { target: 'docker' }, staging: { target: 'akash' } } };
179
+ *
180
+ * deleteByPath(config, 'deploy.staging');
181
+ * // config is now: { deploy: { local: { target: 'docker' } } }
182
+ * // returns true
183
+ *
184
+ * deleteByPath(config, 'missing.key');
185
+ * // returns false
186
+ * ```
187
+ */
188
+ export function deleteByPath(obj, path) {
189
+ const segments = splitPath(path);
190
+ if (segments.length === 0)
191
+ return false;
192
+ // Walk to the parent of the target key
193
+ let current = obj;
194
+ for (let i = 0; i < segments.length - 1; i++) {
195
+ const segment = segments[i];
196
+ if (current === null || current === undefined || typeof current !== 'object') {
197
+ return false;
198
+ }
199
+ current = current[segment];
200
+ }
201
+ if (current === null || current === undefined || typeof current !== 'object') {
202
+ return false;
203
+ }
204
+ const lastSegment = segments[segments.length - 1];
205
+ const parent = current;
206
+ if (!(lastSegment in parent)) {
207
+ return false;
208
+ }
209
+ delete parent[lastSegment];
210
+ return true;
211
+ }
212
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kadi.build/core",
3
- "version": "0.9.0",
3
+ "version": "0.11.0",
4
4
  "description": "A lean, readable SDK for building KADI agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -14,6 +14,8 @@
14
14
  "files": [
15
15
  "dist",
16
16
  "src",
17
+ "scripts",
18
+ "agent.json",
17
19
  "tsconfig.json",
18
20
  "README.md",
19
21
  "LICENSE"