@goondan/openharness-base 0.0.1-alpha4 → 0.0.1-alpha5

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 (105) hide show
  1. package/dist/index.d.ts +72 -5
  2. package/dist/index.js +506 -5
  3. package/package.json +11 -33
  4. package/src/__tests__/compaction-summarize.test.ts +234 -0
  5. package/src/__tests__/context-message.test.ts +203 -0
  6. package/src/__tests__/logging.test.ts +200 -0
  7. package/src/__tests__/message-window.test.ts +193 -0
  8. package/src/__tests__/required-tools-guard.test.ts +206 -0
  9. package/src/__tests__/tool-search.test.ts +187 -0
  10. package/src/__tests__/tools.test.ts +332 -0
  11. package/src/extensions/compaction-summarize.ts +58 -0
  12. package/src/extensions/context-message.ts +37 -0
  13. package/src/extensions/logging.ts +42 -0
  14. package/src/extensions/message-window.ts +23 -0
  15. package/src/extensions/required-tools-guard.ts +24 -0
  16. package/src/extensions/tool-search.ts +38 -0
  17. package/src/index.ts +16 -0
  18. package/src/tools/bash.ts +38 -0
  19. package/src/tools/file-system.ts +83 -0
  20. package/src/tools/http-fetch.ts +64 -0
  21. package/src/tools/json-query.ts +71 -0
  22. package/src/tools/text-transform.ts +59 -0
  23. package/src/tools/wait.ts +46 -0
  24. package/tsconfig.json +8 -0
  25. package/vitest.config.ts +7 -0
  26. package/README.md +0 -11
  27. package/dist/extensions/compaction.d.ts +0 -12
  28. package/dist/extensions/compaction.d.ts.map +0 -1
  29. package/dist/extensions/compaction.js +0 -159
  30. package/dist/extensions/compaction.js.map +0 -1
  31. package/dist/extensions/context-message.d.ts +0 -9
  32. package/dist/extensions/context-message.d.ts.map +0 -1
  33. package/dist/extensions/context-message.js +0 -446
  34. package/dist/extensions/context-message.js.map +0 -1
  35. package/dist/extensions/index.d.ts +0 -13
  36. package/dist/extensions/index.d.ts.map +0 -1
  37. package/dist/extensions/index.js +0 -7
  38. package/dist/extensions/index.js.map +0 -1
  39. package/dist/extensions/logging.d.ts +0 -11
  40. package/dist/extensions/logging.d.ts.map +0 -1
  41. package/dist/extensions/logging.js +0 -140
  42. package/dist/extensions/logging.js.map +0 -1
  43. package/dist/extensions/message-integrity.d.ts +0 -8
  44. package/dist/extensions/message-integrity.d.ts.map +0 -1
  45. package/dist/extensions/message-integrity.js +0 -88
  46. package/dist/extensions/message-integrity.js.map +0 -1
  47. package/dist/extensions/message-window.d.ts +0 -7
  48. package/dist/extensions/message-window.d.ts.map +0 -1
  49. package/dist/extensions/message-window.js +0 -60
  50. package/dist/extensions/message-window.js.map +0 -1
  51. package/dist/extensions/required-tools-guard.d.ts +0 -9
  52. package/dist/extensions/required-tools-guard.d.ts.map +0 -1
  53. package/dist/extensions/required-tools-guard.js +0 -74
  54. package/dist/extensions/required-tools-guard.js.map +0 -1
  55. package/dist/extensions/tool-search.d.ts +0 -10
  56. package/dist/extensions/tool-search.d.ts.map +0 -1
  57. package/dist/extensions/tool-search.js +0 -198
  58. package/dist/extensions/tool-search.js.map +0 -1
  59. package/dist/harness.yaml +0 -503
  60. package/dist/index.d.ts.map +0 -1
  61. package/dist/index.js.map +0 -1
  62. package/dist/manifests/base.d.ts +0 -8
  63. package/dist/manifests/base.d.ts.map +0 -1
  64. package/dist/manifests/base.js +0 -352
  65. package/dist/manifests/base.js.map +0 -1
  66. package/dist/manifests/index.d.ts +0 -3
  67. package/dist/manifests/index.d.ts.map +0 -1
  68. package/dist/manifests/index.js +0 -2
  69. package/dist/manifests/index.js.map +0 -1
  70. package/dist/tools/bash.d.ts +0 -8
  71. package/dist/tools/bash.d.ts.map +0 -1
  72. package/dist/tools/bash.js +0 -119
  73. package/dist/tools/bash.js.map +0 -1
  74. package/dist/tools/file-system.d.ts +0 -12
  75. package/dist/tools/file-system.d.ts.map +0 -1
  76. package/dist/tools/file-system.js +0 -117
  77. package/dist/tools/file-system.js.map +0 -1
  78. package/dist/tools/http-fetch.d.ts +0 -8
  79. package/dist/tools/http-fetch.d.ts.map +0 -1
  80. package/dist/tools/http-fetch.js +0 -149
  81. package/dist/tools/http-fetch.js.map +0 -1
  82. package/dist/tools/index.d.ts +0 -7
  83. package/dist/tools/index.d.ts.map +0 -1
  84. package/dist/tools/index.js +0 -7
  85. package/dist/tools/index.js.map +0 -1
  86. package/dist/tools/json-query.d.ts +0 -12
  87. package/dist/tools/json-query.d.ts.map +0 -1
  88. package/dist/tools/json-query.js +0 -176
  89. package/dist/tools/json-query.js.map +0 -1
  90. package/dist/tools/text-transform.d.ts +0 -16
  91. package/dist/tools/text-transform.d.ts.map +0 -1
  92. package/dist/tools/text-transform.js +0 -127
  93. package/dist/tools/text-transform.js.map +0 -1
  94. package/dist/tools/wait.d.ts +0 -6
  95. package/dist/tools/wait.d.ts.map +0 -1
  96. package/dist/tools/wait.js +0 -32
  97. package/dist/tools/wait.js.map +0 -1
  98. package/dist/types.d.ts +0 -4
  99. package/dist/types.d.ts.map +0 -1
  100. package/dist/types.js +0 -6
  101. package/dist/types.js.map +0 -1
  102. package/dist/utils.d.ts +0 -17
  103. package/dist/utils.d.ts.map +0 -1
  104. package/dist/utils.js +0 -159
  105. package/dist/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/tools/file-system.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { ToolHandler } from '../types.js';
2
- export declare const get: ToolHandler;
3
- export declare const post: ToolHandler;
4
- export declare const handlers: {
5
- get: ToolHandler;
6
- post: ToolHandler;
7
- };
8
- //# sourceMappingURL=http-fetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-fetch.d.ts","sourceRoot":"","sources":["../../src/tools/http-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsC,WAAW,EAAE,MAAM,aAAa,CAAC;AAgHnF,eAAO,MAAM,GAAG,EAAE,WAkCjB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,WA+ClB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;CAGkB,CAAC"}
@@ -1,149 +0,0 @@
1
- import { optionalJsonObject, optionalNumber, optionalString, requireString, } from '../utils.js';
2
- const ALLOWED_PROTOCOLS = new Set(['http:', 'https:']);
3
- const MAX_RESPONSE_BYTES = 500_000;
4
- function validateUrl(raw) {
5
- let parsed;
6
- try {
7
- parsed = new URL(raw);
8
- }
9
- catch {
10
- throw new Error(`Invalid URL: ${raw}`);
11
- }
12
- if (!ALLOWED_PROTOCOLS.has(parsed.protocol)) {
13
- throw new Error(`Unsupported protocol '${parsed.protocol}'. Only http: and https: are allowed.`);
14
- }
15
- return parsed;
16
- }
17
- function headersFromJson(input) {
18
- if (!input) {
19
- return {};
20
- }
21
- const output = {};
22
- for (const [key, value] of Object.entries(input)) {
23
- if (typeof value === 'string') {
24
- output[key] = value;
25
- }
26
- else if (typeof value === 'number' || typeof value === 'boolean') {
27
- output[key] = String(value);
28
- }
29
- }
30
- return output;
31
- }
32
- async function readResponseBody(response, maxBytes) {
33
- const contentLength = response.headers.get('content-length');
34
- if (contentLength !== null) {
35
- const size = Number.parseInt(contentLength, 10);
36
- if (!Number.isNaN(size) && size > maxBytes) {
37
- const buffer = new Uint8Array(maxBytes);
38
- const reader = response.body?.getReader();
39
- if (!reader) {
40
- return { text: '', truncated: false };
41
- }
42
- let offset = 0;
43
- let done = false;
44
- while (!done && offset < maxBytes) {
45
- const chunk = await reader.read();
46
- done = chunk.done;
47
- if (chunk.value) {
48
- const remaining = maxBytes - offset;
49
- const slice = chunk.value.subarray(0, remaining);
50
- buffer.set(slice, offset);
51
- offset += slice.byteLength;
52
- }
53
- }
54
- reader.cancel().catch(() => { });
55
- return {
56
- text: new TextDecoder().decode(buffer.subarray(0, offset)),
57
- truncated: true,
58
- };
59
- }
60
- }
61
- const text = await response.text();
62
- if (text.length > maxBytes) {
63
- return { text: text.slice(0, maxBytes), truncated: true };
64
- }
65
- return { text, truncated: false };
66
- }
67
- function buildResult(url, method, status, statusText, headers, body, truncated, durationMs) {
68
- return {
69
- url,
70
- method,
71
- status,
72
- statusText,
73
- headers,
74
- body,
75
- truncated,
76
- durationMs,
77
- };
78
- }
79
- function extractResponseHeaders(response) {
80
- const output = {};
81
- response.headers.forEach((value, key) => {
82
- output[key] = value;
83
- });
84
- return output;
85
- }
86
- export const get = async (_ctx, input) => {
87
- const url = requireString(input, 'url');
88
- const parsed = validateUrl(url);
89
- const headers = headersFromJson(optionalJsonObject(input, 'headers'));
90
- const timeoutMs = optionalNumber(input, 'timeoutMs', 30_000) ?? 30_000;
91
- const maxBytes = optionalNumber(input, 'maxBytes', MAX_RESPONSE_BYTES) ?? MAX_RESPONSE_BYTES;
92
- const controller = new AbortController();
93
- const timer = setTimeout(() => controller.abort(), timeoutMs);
94
- const startedAt = Date.now();
95
- try {
96
- const response = await fetch(parsed.toString(), {
97
- method: 'GET',
98
- headers,
99
- signal: controller.signal,
100
- });
101
- const responseHeaders = extractResponseHeaders(response);
102
- const { text, truncated } = await readResponseBody(response, maxBytes);
103
- return buildResult(parsed.toString(), 'GET', response.status, response.statusText, responseHeaders, text, truncated, Date.now() - startedAt);
104
- }
105
- finally {
106
- clearTimeout(timer);
107
- }
108
- };
109
- export const post = async (_ctx, input) => {
110
- const url = requireString(input, 'url');
111
- const parsed = validateUrl(url);
112
- const headers = headersFromJson(optionalJsonObject(input, 'headers'));
113
- const timeoutMs = optionalNumber(input, 'timeoutMs', 30_000) ?? 30_000;
114
- const maxBytes = optionalNumber(input, 'maxBytes', MAX_RESPONSE_BYTES) ?? MAX_RESPONSE_BYTES;
115
- const bodyInput = optionalJsonObject(input, 'body');
116
- const bodyString = optionalString(input, 'bodyString');
117
- let requestBody;
118
- if (bodyInput) {
119
- requestBody = JSON.stringify(bodyInput);
120
- if (!headers['content-type'] && !headers['Content-Type']) {
121
- headers['content-type'] = 'application/json';
122
- }
123
- }
124
- else if (bodyString) {
125
- requestBody = bodyString;
126
- }
127
- const controller = new AbortController();
128
- const timer = setTimeout(() => controller.abort(), timeoutMs);
129
- const startedAt = Date.now();
130
- try {
131
- const response = await fetch(parsed.toString(), {
132
- method: 'POST',
133
- headers,
134
- body: requestBody,
135
- signal: controller.signal,
136
- });
137
- const responseHeaders = extractResponseHeaders(response);
138
- const { text, truncated } = await readResponseBody(response, maxBytes);
139
- return buildResult(parsed.toString(), 'POST', response.status, response.statusText, responseHeaders, text, truncated, Date.now() - startedAt);
140
- }
141
- finally {
142
- clearTimeout(timer);
143
- }
144
- };
145
- export const handlers = {
146
- get,
147
- post,
148
- };
149
- //# sourceMappingURL=http-fetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-fetch.js","sourceRoot":"","sources":["../../src/tools/http-fetch.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export { handlers as bashHandlers, exec as bashExec, script as bashScript, } from './bash.js';
2
- export { handlers as fileSystemHandlers, read as fileRead, write as fileWrite, list as fileList, mkdir as fileMkdir, } from './file-system.js';
3
- export { handlers as httpFetchHandlers, get as httpFetchGet, post as httpFetchPost, } from './http-fetch.js';
4
- export { handlers as jsonQueryHandlers, query as jsonQueryQuery, pick as jsonQueryPick, count as jsonQueryCount, flatten as jsonQueryFlatten, } from './json-query.js';
5
- export { handlers as textTransformHandlers, replace as textTransformReplace, slice as textTransformSlice, split as textTransformSplit, join as textTransformJoin, trim as textTransformTrim, caseTransform as textTransformCase, } from './text-transform.js';
6
- export { handlers as waitHandlers, seconds as waitSeconds, } from './wait.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,IAAI,IAAI,QAAQ,EAChB,MAAM,IAAI,UAAU,GACrB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,QAAQ,IAAI,kBAAkB,EAC9B,IAAI,IAAI,QAAQ,EAChB,KAAK,IAAI,SAAS,EAClB,IAAI,IAAI,QAAQ,EAChB,KAAK,IAAI,SAAS,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAC7B,GAAG,IAAI,YAAY,EACnB,IAAI,IAAI,aAAa,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAC7B,KAAK,IAAI,cAAc,EACvB,IAAI,IAAI,aAAa,EACrB,KAAK,IAAI,cAAc,EACvB,OAAO,IAAI,gBAAgB,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,QAAQ,IAAI,qBAAqB,EACjC,OAAO,IAAI,oBAAoB,EAC/B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,EAC3B,IAAI,IAAI,iBAAiB,EACzB,IAAI,IAAI,iBAAiB,EACzB,aAAa,IAAI,iBAAiB,GACnC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,OAAO,IAAI,WAAW,GACvB,MAAM,WAAW,CAAC"}
@@ -1,7 +0,0 @@
1
- export { handlers as bashHandlers, exec as bashExec, script as bashScript, } from './bash.js';
2
- export { handlers as fileSystemHandlers, read as fileRead, write as fileWrite, list as fileList, mkdir as fileMkdir, } from './file-system.js';
3
- export { handlers as httpFetchHandlers, get as httpFetchGet, post as httpFetchPost, } from './http-fetch.js';
4
- export { handlers as jsonQueryHandlers, query as jsonQueryQuery, pick as jsonQueryPick, count as jsonQueryCount, flatten as jsonQueryFlatten, } from './json-query.js';
5
- export { handlers as textTransformHandlers, replace as textTransformReplace, slice as textTransformSlice, split as textTransformSplit, join as textTransformJoin, trim as textTransformTrim, caseTransform as textTransformCase, } from './text-transform.js';
6
- export { handlers as waitHandlers, seconds as waitSeconds, } from './wait.js';
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,IAAI,IAAI,QAAQ,EAChB,MAAM,IAAI,UAAU,GACrB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,QAAQ,IAAI,kBAAkB,EAC9B,IAAI,IAAI,QAAQ,EAChB,KAAK,IAAI,SAAS,EAClB,IAAI,IAAI,QAAQ,EAChB,KAAK,IAAI,SAAS,GACnB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAC7B,GAAG,IAAI,YAAY,EACnB,IAAI,IAAI,aAAa,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAC7B,KAAK,IAAI,cAAc,EACvB,IAAI,IAAI,aAAa,EACrB,KAAK,IAAI,cAAc,EACvB,OAAO,IAAI,gBAAgB,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,QAAQ,IAAI,qBAAqB,EACjC,OAAO,IAAI,oBAAoB,EAC/B,KAAK,IAAI,kBAAkB,EAC3B,KAAK,IAAI,kBAAkB,EAC3B,IAAI,IAAI,iBAAiB,EACzB,IAAI,IAAI,iBAAiB,EACzB,aAAa,IAAI,iBAAiB,GACnC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,OAAO,IAAI,WAAW,GACvB,MAAM,WAAW,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { ToolHandler } from '../types.js';
2
- export declare const query: ToolHandler;
3
- export declare const pick: ToolHandler;
4
- export declare const count: ToolHandler;
5
- export declare const flatten: ToolHandler;
6
- export declare const handlers: {
7
- query: ToolHandler;
8
- pick: ToolHandler;
9
- count: ToolHandler;
10
- flatten: ToolHandler;
11
- };
12
- //# sourceMappingURL=json-query.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-query.d.ts","sourceRoot":"","sources":["../../src/tools/json-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsC,WAAW,EAAE,MAAM,aAAa,CAAC;AA4GnF,eAAO,MAAM,KAAK,EAAE,WAYnB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,WAiClB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,WAwBnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WA4BrB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;CAKkB,CAAC"}
@@ -1,176 +0,0 @@
1
- import { isJsonArray, isJsonObject, isJsonValue, optionalNumber, optionalString, requireString, } from '../utils.js';
2
- function parsePath(path) {
3
- if (path.length === 0 || path === '.') {
4
- return [];
5
- }
6
- const raw = path.startsWith('.') ? path.slice(1) : path;
7
- const segments = [];
8
- let current = '';
9
- let insideBracket = false;
10
- for (let i = 0; i < raw.length; i += 1) {
11
- const char = raw[i];
12
- if (char === undefined) {
13
- continue;
14
- }
15
- if (char === '[') {
16
- if (current.length > 0) {
17
- segments.push(current);
18
- current = '';
19
- }
20
- insideBracket = true;
21
- continue;
22
- }
23
- if (char === ']') {
24
- if (current.length > 0) {
25
- segments.push(current);
26
- current = '';
27
- }
28
- insideBracket = false;
29
- continue;
30
- }
31
- if (char === '.' && !insideBracket) {
32
- if (current.length > 0) {
33
- segments.push(current);
34
- current = '';
35
- }
36
- continue;
37
- }
38
- current += char;
39
- }
40
- if (current.length > 0) {
41
- segments.push(current);
42
- }
43
- return segments;
44
- }
45
- function resolveSegment(value, segment) {
46
- if (isJsonObject(value)) {
47
- const result = value[segment];
48
- return result === undefined ? undefined : result;
49
- }
50
- if (isJsonArray(value)) {
51
- const index = Number.parseInt(segment, 10);
52
- if (Number.isNaN(index) || index < 0 || index >= value.length) {
53
- return undefined;
54
- }
55
- return value[index];
56
- }
57
- return undefined;
58
- }
59
- function resolveQuery(data, path) {
60
- const segments = parsePath(path);
61
- let current = data;
62
- for (const segment of segments) {
63
- if (current === undefined || current === null) {
64
- return undefined;
65
- }
66
- current = resolveSegment(current, segment);
67
- }
68
- return current;
69
- }
70
- function parseInput(raw) {
71
- try {
72
- const parsed = JSON.parse(raw);
73
- if (!isJsonValue(parsed)) {
74
- throw new Error('Parsed value is not a valid JSON value');
75
- }
76
- return parsed;
77
- }
78
- catch (err) {
79
- if (err instanceof Error && err.message === 'Parsed value is not a valid JSON value') {
80
- throw err;
81
- }
82
- throw new Error('Failed to parse input as JSON');
83
- }
84
- }
85
- export const query = async (_ctx, input) => {
86
- const dataRaw = requireString(input, 'data');
87
- const path = optionalString(input, 'path') ?? '.';
88
- const data = parseInput(dataRaw);
89
- const result = resolveQuery(data, path);
90
- return {
91
- path,
92
- found: result !== undefined,
93
- value: result ?? null,
94
- };
95
- };
96
- export const pick = async (_ctx, input) => {
97
- const dataRaw = requireString(input, 'data');
98
- const keysRaw = input.keys;
99
- if (!Array.isArray(keysRaw)) {
100
- throw new Error("'keys' must be an array of strings");
101
- }
102
- const keys = [];
103
- for (const key of keysRaw) {
104
- if (typeof key !== 'string') {
105
- throw new Error("'keys' must contain only strings");
106
- }
107
- keys.push(key);
108
- }
109
- const data = parseInput(dataRaw);
110
- if (!isJsonObject(data)) {
111
- throw new Error('Input data must be a JSON object for pick operation');
112
- }
113
- const result = {};
114
- for (const key of keys) {
115
- const value = data[key];
116
- if (value !== undefined) {
117
- result[key] = value;
118
- }
119
- }
120
- return {
121
- keys,
122
- result,
123
- };
124
- };
125
- export const count = async (_ctx, input) => {
126
- const dataRaw = requireString(input, 'data');
127
- const path = optionalString(input, 'path') ?? '.';
128
- const data = parseInput(dataRaw);
129
- const resolved = resolveQuery(data, path);
130
- if (resolved === undefined || resolved === null) {
131
- return { path, count: 0, type: 'null' };
132
- }
133
- if (isJsonArray(resolved)) {
134
- return { path, count: resolved.length, type: 'array' };
135
- }
136
- if (isJsonObject(resolved)) {
137
- return { path, count: Object.keys(resolved).length, type: 'object' };
138
- }
139
- if (typeof resolved === 'string') {
140
- return { path, count: resolved.length, type: 'string' };
141
- }
142
- return { path, count: 1, type: typeof resolved };
143
- };
144
- export const flatten = async (_ctx, input) => {
145
- const dataRaw = requireString(input, 'data');
146
- const depth = optionalNumber(input, 'depth', 1) ?? 1;
147
- const data = parseInput(dataRaw);
148
- if (!isJsonArray(data)) {
149
- throw new Error('Input data must be a JSON array for flatten operation');
150
- }
151
- function flattenRecursive(arr, currentDepth) {
152
- const result = [];
153
- for (const item of arr) {
154
- if (isJsonArray(item) && currentDepth > 0) {
155
- result.push(...flattenRecursive(item, currentDepth - 1));
156
- }
157
- else {
158
- result.push(item);
159
- }
160
- }
161
- return result;
162
- }
163
- const result = flattenRecursive(data, depth);
164
- return {
165
- depth,
166
- count: result.length,
167
- result,
168
- };
169
- };
170
- export const handlers = {
171
- query,
172
- pick,
173
- count,
174
- flatten,
175
- };
176
- //# sourceMappingURL=json-query.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-query.js","sourceRoot":"","sources":["../../src/tools/json-query.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import type { ToolHandler } from '../types.js';
2
- export declare const replace: ToolHandler;
3
- export declare const slice: ToolHandler;
4
- export declare const split: ToolHandler;
5
- export declare const join: ToolHandler;
6
- export declare const trim: ToolHandler;
7
- export declare const caseTransform: ToolHandler;
8
- export declare const handlers: {
9
- replace: ToolHandler;
10
- slice: ToolHandler;
11
- split: ToolHandler;
12
- join: ToolHandler;
13
- trim: ToolHandler;
14
- case: ToolHandler;
15
- };
16
- //# sourceMappingURL=text-transform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-transform.d.ts","sourceRoot":"","sources":["../../src/tools/text-transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsC,WAAW,EAAE,MAAM,aAAa,CAAC;AAOnF,eAAO,MAAM,OAAO,EAAE,WAyBrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,WAcnB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,WAYnB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,WAyBlB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,WAuBlB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAqB3B,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;;CAOkB,CAAC"}
@@ -1,127 +0,0 @@
1
- import { optionalNumber, optionalString, requireString, } from '../utils.js';
2
- export const replace = async (_ctx, input) => {
3
- const text = requireString(input, 'text');
4
- const search = requireString(input, 'search');
5
- const replacement = optionalString(input, 'replacement') ?? '';
6
- const allOccurrences = input.all === true;
7
- let result;
8
- if (allOccurrences) {
9
- result = text.split(search).join(replacement);
10
- }
11
- else {
12
- const index = text.indexOf(search);
13
- if (index < 0) {
14
- result = text;
15
- }
16
- else {
17
- result = text.slice(0, index) + replacement + text.slice(index + search.length);
18
- }
19
- }
20
- return {
21
- original: text,
22
- result,
23
- replacements: allOccurrences
24
- ? text.split(search).length - 1
25
- : (text.includes(search) ? 1 : 0),
26
- };
27
- };
28
- export const slice = async (_ctx, input) => {
29
- const text = requireString(input, 'text');
30
- const start = optionalNumber(input, 'start', 0) ?? 0;
31
- const end = optionalNumber(input, 'end');
32
- const result = end !== undefined ? text.slice(start, end) : text.slice(start);
33
- return {
34
- original: text,
35
- result,
36
- start,
37
- end: end ?? text.length,
38
- length: result.length,
39
- };
40
- };
41
- export const split = async (_ctx, input) => {
42
- const text = requireString(input, 'text');
43
- const delimiter = optionalString(input, 'delimiter') ?? '\n';
44
- const maxParts = optionalNumber(input, 'maxParts');
45
- const parts = maxParts !== undefined ? text.split(delimiter, maxParts) : text.split(delimiter);
46
- return {
47
- delimiter,
48
- count: parts.length,
49
- parts,
50
- };
51
- };
52
- export const join = async (_ctx, input) => {
53
- const partsRaw = input.parts;
54
- if (!Array.isArray(partsRaw)) {
55
- throw new Error("'parts' must be an array");
56
- }
57
- const parts = [];
58
- for (const item of partsRaw) {
59
- if (typeof item === 'string') {
60
- parts.push(item);
61
- }
62
- else if (typeof item === 'number' || typeof item === 'boolean') {
63
- parts.push(String(item));
64
- }
65
- else {
66
- throw new Error("'parts' must contain only string/number/boolean values");
67
- }
68
- }
69
- const delimiter = optionalString(input, 'delimiter') ?? '\n';
70
- const result = parts.join(delimiter);
71
- return {
72
- delimiter,
73
- count: parts.length,
74
- result,
75
- };
76
- };
77
- export const trim = async (_ctx, input) => {
78
- const text = requireString(input, 'text');
79
- const mode = optionalString(input, 'mode') ?? 'both';
80
- let result;
81
- switch (mode) {
82
- case 'start':
83
- result = text.trimStart();
84
- break;
85
- case 'end':
86
- result = text.trimEnd();
87
- break;
88
- default:
89
- result = text.trim();
90
- break;
91
- }
92
- return {
93
- original: text,
94
- result,
95
- mode,
96
- trimmedLength: text.length - result.length,
97
- };
98
- };
99
- export const caseTransform = async (_ctx, input) => {
100
- const text = requireString(input, 'text');
101
- const to = requireString(input, 'to');
102
- let result;
103
- switch (to) {
104
- case 'upper':
105
- result = text.toUpperCase();
106
- break;
107
- case 'lower':
108
- result = text.toLowerCase();
109
- break;
110
- default:
111
- throw new Error(`Unsupported case transform '${to}'. Use 'upper' or 'lower'.`);
112
- }
113
- return {
114
- original: text,
115
- result,
116
- to,
117
- };
118
- };
119
- export const handlers = {
120
- replace,
121
- slice,
122
- split,
123
- join,
124
- trim,
125
- case: caseTransform,
126
- };
127
- //# sourceMappingURL=text-transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-transform.js","sourceRoot":"","sources":["../../src/tools/text-transform.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import type { ToolHandler } from '../types.js';
2
- export declare const seconds: ToolHandler;
3
- export declare const handlers: {
4
- seconds: ToolHandler;
5
- };
6
- //# sourceMappingURL=wait.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsC,WAAW,EAAE,MAAM,aAAa,CAAC;AA2BnF,eAAO,MAAM,OAAO,EAAE,WASrB,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAEkB,CAAC"}
@@ -1,32 +0,0 @@
1
- const MAX_WAIT_SECONDS = 300;
2
- function readSeconds(input) {
3
- const value = input.seconds;
4
- if (typeof value !== 'number' || Number.isNaN(value) || !Number.isFinite(value)) {
5
- throw new Error("'seconds' must be a finite number");
6
- }
7
- if (value < 0) {
8
- throw new Error("'seconds' must be greater than or equal to 0");
9
- }
10
- if (value > MAX_WAIT_SECONDS) {
11
- throw new Error(`'seconds' must be less than or equal to ${MAX_WAIT_SECONDS}`);
12
- }
13
- return value;
14
- }
15
- function delay(ms) {
16
- return new Promise((resolve) => {
17
- setTimeout(resolve, ms);
18
- });
19
- }
20
- export const seconds = async (_ctx, input) => {
21
- const waitSeconds = readSeconds(input);
22
- const waitedMs = Math.round(waitSeconds * 1000);
23
- await delay(waitedMs);
24
- return {
25
- waitedSeconds: waitSeconds,
26
- waitedMs,
27
- };
28
- };
29
- export const handlers = {
30
- seconds,
31
- };
32
- //# sourceMappingURL=wait.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/tools/wait.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,SAAS,WAAW,CAAC,KAAiB;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,KAAK,GAAG,gBAAgB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,2CAA2C,gBAAgB,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAgB,KAAK,EAAE,IAAiB,EAAE,KAAiB,EAAsB,EAAE;IACrG,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtB,OAAO;QACL,aAAa,EAAE,WAAW;QAC1B,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO;CAC8B,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { JsonObject } from "@goondan/openharness-types";
2
- export * from "@goondan/openharness-types";
3
- export declare function isJsonObject(value: unknown): value is JsonObject;
4
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,cAAc,4BAA4B,CAAC;AAE3C,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE"}
package/dist/types.js DELETED
@@ -1,6 +0,0 @@
1
- import { isPlainObject } from "@goondan/openharness-types";
2
- export * from "@goondan/openharness-types";
3
- export function isJsonObject(value) {
4
- return isPlainObject(value);
5
- }
6
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,cAAc,4BAA4B,CAAC;AAE3C,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC"}