@fantasticit/sumi 0.7.5 → 0.8.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.
- package/README.md +28 -25
- package/dist/adapters.d.ts +26 -3
- package/dist/adapters.js +117 -16
- package/dist/adapters.js.map +1 -1
- package/dist/agent-hooks.d.ts +7 -1
- package/dist/agent-hooks.js +207 -11
- package/dist/agent-hooks.js.map +1 -1
- package/dist/agents.js +36 -3
- package/dist/agents.js.map +1 -1
- package/dist/cli.d.ts +3 -1
- package/dist/cli.js +45 -6
- package/dist/cli.js.map +1 -1
- package/dist/context.d.ts +27 -0
- package/dist/context.js +31 -13
- package/dist/context.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/instructions.js +7 -5
- package/dist/instructions.js.map +1 -1
- package/dist/task.d.ts +1 -0
- package/dist/task.js +170 -0
- package/dist/task.js.map +1 -0
- package/dist/visualize-page.d.ts +1 -0
- package/dist/visualize-page.js +49 -0
- package/dist/visualize-page.js.map +1 -0
- package/dist/visualize.d.ts +5 -0
- package/dist/visualize.js +132 -0
- package/dist/visualize.js.map +1 -0
- package/node_modules/@sumi/create/dist/scaffold.js +6 -0
- package/node_modules/@sumi/create/dist/scaffold.js.map +1 -1
- package/node_modules/@sumi/create/package.json +1 -1
- package/node_modules/@sumi/create/template/AGENTS.md +2 -0
- package/node_modules/@sumi/create/template/control/config.yaml +2 -0
- package/node_modules/@sumi/create/template/control/flows/change.flow.yaml +6 -0
- package/node_modules/@sumi/create/template/control/flows/check.flow.yaml +8 -0
- package/node_modules/@sumi/create/template/control/rubrics/business-impact.yaml +6 -0
- package/node_modules/@sumi/create/template/control/rules/development.md +61 -0
- package/node_modules/@sumi/create/template/init/AGENTS.md +2 -0
- package/node_modules/@sumi/create/template/init/control/flows/check.flow.yaml +2 -0
- package/node_modules/@sumi/kernel/dist/brief.d.ts +1 -0
- package/node_modules/@sumi/kernel/dist/brief.js +1 -0
- package/node_modules/@sumi/kernel/dist/brief.js.map +1 -1
- package/node_modules/@sumi/kernel/dist/engine.js +1 -0
- package/node_modules/@sumi/kernel/dist/engine.js.map +1 -1
- package/node_modules/@sumi/kernel/package.json +2 -2
- package/node_modules/@sumi/plugin-sdk/README.md +39 -20
- package/node_modules/@sumi/plugin-sdk/dist/index.d.ts +2 -0
- package/node_modules/@sumi/plugin-sdk/dist/index.js +2 -0
- package/node_modules/@sumi/plugin-sdk/dist/index.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/protocol.d.ts +59 -1
- package/node_modules/@sumi/plugin-sdk/dist/protocol.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/rules.d.ts +1 -4
- package/node_modules/@sumi/plugin-sdk/dist/rules.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/dist/session-context.d.ts +7 -0
- package/node_modules/@sumi/plugin-sdk/dist/session-context.js +62 -0
- package/node_modules/@sumi/plugin-sdk/dist/session-context.js.map +1 -0
- package/node_modules/@sumi/plugin-sdk/dist/trace.d.ts +16 -0
- package/node_modules/@sumi/plugin-sdk/dist/trace.js +48 -0
- package/node_modules/@sumi/plugin-sdk/dist/trace.js.map +1 -0
- package/node_modules/@sumi/plugin-sdk/dist/validate.js +62 -2
- package/node_modules/@sumi/plugin-sdk/dist/validate.js.map +1 -1
- package/node_modules/@sumi/plugin-sdk/package.json +1 -1
- package/node_modules/@sumi/plugins-core/dist/agent-rules.d.ts +5 -0
- package/node_modules/@sumi/plugins-core/dist/agent-rules.js +66 -0
- package/node_modules/@sumi/plugins-core/dist/agent-rules.js.map +1 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-before-edit.d.ts +1 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-before-edit.js +10 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-before-edit.js.map +1 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-prompt.d.ts +1 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-prompt.js +8 -0
- package/node_modules/@sumi/plugins-core/dist/commands/agent-rules-prompt.js.map +1 -0
- package/node_modules/@sumi/plugins-core/dist/plugins/agent-rules.d.ts +1 -0
- package/node_modules/@sumi/plugins-core/dist/plugins/agent-rules.js +19 -0
- package/node_modules/@sumi/plugins-core/dist/plugins/agent-rules.js.map +1 -0
- package/node_modules/@sumi/plugins-core/instructions/bugfix.md +9 -0
- package/node_modules/@sumi/plugins-core/instructions/feature.md +9 -0
- package/node_modules/@sumi/plugins-core/package.json +2 -2
- package/node_modules/@sumi/plugins-core/sumi-plugins.yaml +22 -1
- package/node_modules/@sumi/plugins-governance/README.md +3 -3
- package/node_modules/@sumi/plugins-governance/dist/checkout.d.ts +2 -0
- package/node_modules/@sumi/plugins-governance/dist/checkout.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report-check.js +2 -0
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report-check.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js +2 -3
- package/node_modules/@sumi/plugins-governance/dist/commands/pr-report.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.d.ts +6 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.js +11 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-report-sections.js.map +1 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-report-status.d.ts +1 -0
- package/node_modules/@sumi/plugins-governance/dist/pr-report-status.js +15 -12
- package/node_modules/@sumi/plugins-governance/dist/pr-report-status.js.map +1 -1
- package/node_modules/@sumi/plugins-governance/instructions/push.md +1 -1
- package/node_modules/@sumi/plugins-governance/package.json +2 -2
- package/node_modules/@sumi/plugins-openspec/dist/impact-consistency.d.ts +11 -0
- package/node_modules/@sumi/plugins-openspec/dist/impact-consistency.js +67 -0
- package/node_modules/@sumi/plugins-openspec/dist/impact-consistency.js.map +1 -0
- package/node_modules/@sumi/plugins-openspec/dist/plugins/impact-consistency.d.ts +1 -0
- package/node_modules/@sumi/plugins-openspec/dist/plugins/impact-consistency.js +63 -0
- package/node_modules/@sumi/plugins-openspec/dist/plugins/impact-consistency.js.map +1 -0
- package/node_modules/@sumi/plugins-openspec/package.json +4 -2
- package/node_modules/@sumi/plugins-openspec/sumi-plugins.yaml +6 -0
- package/node_modules/@sumi/plugins-precedent/README.md +6 -0
- package/node_modules/@sumi/plugins-precedent/dist/after-edit-context.d.ts +2 -0
- package/node_modules/@sumi/plugins-precedent/dist/after-edit-context.js +89 -77
- package/node_modules/@sumi/plugins-precedent/dist/after-edit-context.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/dist/candidates.d.ts +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/before-edit-context.d.ts +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/before-edit-context.js +10 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/before-edit-context.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/context.js +21 -5
- package/node_modules/@sumi/plugins-precedent/dist/commands/context.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/dist/commands/impact-submit.d.ts +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/impact-submit.js +21 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/impact-submit.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/on-prompt-context.d.ts +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/on-prompt-context.js +55 -0
- package/node_modules/@sumi/plugins-precedent/dist/commands/on-prompt-context.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-candidates.d.ts +6 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-candidates.js +51 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-candidates.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-state.d.ts +14 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-state.js +60 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact-state.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact.d.ts +52 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact.js +253 -0
- package/node_modules/@sumi/plugins-precedent/dist/impact.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/index.d.ts +2 -0
- package/node_modules/@sumi/plugins-precedent/dist/index.js +2 -0
- package/node_modules/@sumi/plugins-precedent/dist/index.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/dist/model.d.ts +2 -0
- package/node_modules/@sumi/plugins-precedent/dist/model.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js +31 -5
- package/node_modules/@sumi/plugins-precedent/dist/plugins/harvest.js.map +1 -1
- package/node_modules/@sumi/plugins-precedent/dist/plugins/impact.d.ts +1 -0
- package/node_modules/@sumi/plugins-precedent/dist/plugins/impact.js +60 -0
- package/node_modules/@sumi/plugins-precedent/dist/plugins/impact.js.map +1 -0
- package/node_modules/@sumi/plugins-precedent/package.json +3 -3
- package/node_modules/@sumi/plugins-precedent/sumi-plugins.yaml +34 -1
- package/node_modules/@sumi/plugins-review/README.md +27 -8
- package/node_modules/@sumi/plugins-review/dist/commands/context.js +18 -3
- package/node_modules/@sumi/plugins-review/dist/commands/context.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.d.ts +1 -0
- package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.js +12 -0
- package/node_modules/@sumi/plugins-review/dist/commands/host-model-hook.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.d.ts +1 -0
- package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.js +56 -0
- package/node_modules/@sumi/plugins-review/dist/commands/model-recheck.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/commands/submit.js +25 -67
- package/node_modules/@sumi/plugins-review/dist/commands/submit.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/model-execution.d.ts +29 -0
- package/node_modules/@sumi/plugins-review/dist/model-execution.js +157 -0
- package/node_modules/@sumi/plugins-review/dist/model-execution.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/model-independence.d.ts +10 -0
- package/node_modules/@sumi/plugins-review/dist/model-independence.js +14 -0
- package/node_modules/@sumi/plugins-review/dist/model-independence.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.d.ts +1 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.js +88 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/independent-recheck.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js +44 -7
- package/node_modules/@sumi/plugins-review/dist/plugins/rubric.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/recheck.d.ts +48 -0
- package/node_modules/@sumi/plugins-review/dist/recheck.js +130 -0
- package/node_modules/@sumi/plugins-review/dist/recheck.js.map +1 -0
- package/node_modules/@sumi/plugins-review/dist/review.d.ts +8 -0
- package/node_modules/@sumi/plugins-review/dist/review.js +33 -4
- package/node_modules/@sumi/plugins-review/dist/review.js.map +1 -1
- package/node_modules/@sumi/plugins-review/dist/submission.d.ts +11 -0
- package/node_modules/@sumi/plugins-review/dist/submission.js +77 -0
- package/node_modules/@sumi/plugins-review/dist/submission.js.map +1 -0
- package/node_modules/@sumi/plugins-review/package.json +4 -3
- package/node_modules/@sumi/plugins-review/sumi-plugins.yaml +15 -0
- package/package.json +10 -10
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { digestOfBlobs, fileBlobs, isReviewResult, loadRubric, requestKey, ticketsDir, validateReviewResult, writeAccepted, writeCoverage, impactRequestItems, } from './review.js';
|
|
4
|
+
import { impactScope } from '@sumi/plugins-precedent';
|
|
5
|
+
import { readImpact } from '@sumi/plugins-precedent';
|
|
6
|
+
function readObject(path, what) {
|
|
7
|
+
let value;
|
|
8
|
+
try {
|
|
9
|
+
value = JSON.parse(readFileSync(path, 'utf8'));
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
throw new Error(`${what}无法读取或不是合法 JSON:${path}`);
|
|
13
|
+
}
|
|
14
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
15
|
+
throw new Error(`${what}格式不合法(应为 JSON 对象):${path}`);
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
/** 两种提交入口共享同一份 ticket、请求和当前内容校验。 */
|
|
19
|
+
export function prepareSubmission(root, runId, stepId, ticketId, requireResultFile = true) {
|
|
20
|
+
if (!/^[a-f0-9]{8}$/.test(ticketId))
|
|
21
|
+
throw new Error('ticket 格式无效');
|
|
22
|
+
const ticketPath = join(ticketsDir(root), `${ticketId}.json`);
|
|
23
|
+
if (!existsSync(ticketPath))
|
|
24
|
+
throw new Error(`ticket ${ticketId} 不存在`);
|
|
25
|
+
const ticket = readObject(ticketPath, 'ticket ');
|
|
26
|
+
if (ticket.runId !== runId || ticket.stepId !== stepId)
|
|
27
|
+
throw new Error('ticket 与运行或步骤不匹配');
|
|
28
|
+
if (ticket.used)
|
|
29
|
+
throw new Error('ticket 已使用');
|
|
30
|
+
if (typeof ticket.requestPath !== 'string' || typeof ticket.resultPath !== 'string')
|
|
31
|
+
throw new Error('ticket 格式不合法');
|
|
32
|
+
if (requireResultFile && !existsSync(ticket.resultPath))
|
|
33
|
+
throw new Error(`结果文件不在指定路径:${ticket.resultPath}`);
|
|
34
|
+
const request = readObject(ticket.requestPath, '评审请求');
|
|
35
|
+
if (!Array.isArray(request.items) || !request.items.every((i) => typeof i?.id === 'string' && Array.isArray(i.files)))
|
|
36
|
+
throw new Error('评审请求格式不合法');
|
|
37
|
+
if (request.key !== ticket.key)
|
|
38
|
+
throw new Error('评审请求的键与 ticket 不一致,请求可能被改写,请重新运行流程');
|
|
39
|
+
if (requestKey(request) !== request.key)
|
|
40
|
+
throw new Error('评审请求键与请求内容不符(条目范围或摘要被改写),请重新运行流程');
|
|
41
|
+
if (request.impact) {
|
|
42
|
+
const currentScope = impactScope(root, request.base, request.impact.scope.files.map((f) => f.path));
|
|
43
|
+
const current = currentScope ? readImpact(root, currentScope) : null;
|
|
44
|
+
if (!current || JSON.stringify(current) !== JSON.stringify(request.impact))
|
|
45
|
+
throw new Error('业务约束影响记录已变化,请重新运行评审');
|
|
46
|
+
const expectedItems = impactRequestItems(current);
|
|
47
|
+
const actualItems = request.items.filter((item) => item.id.startsWith('impact-'));
|
|
48
|
+
if (JSON.stringify(actualItems) !== JSON.stringify(expectedItems))
|
|
49
|
+
throw new Error('业务影响评审条目已变化,请重新运行评审');
|
|
50
|
+
}
|
|
51
|
+
const rubricDigest = loadRubric(request.repoRoot, request.rubric).digest;
|
|
52
|
+
if (rubricDigest !== request.rubricDigest)
|
|
53
|
+
throw new Error('评审准则已变化,请重新运行流程');
|
|
54
|
+
const reviewed = [...new Set(request.items.flatMap((i) => i.files))];
|
|
55
|
+
const blobs = fileBlobs(request.repoRoot, reviewed);
|
|
56
|
+
if (digestOfBlobs(reviewed, blobs) !== request.contentDigest)
|
|
57
|
+
throw new Error('被评审的内容已变化,请重新运行流程');
|
|
58
|
+
return { root, ticketPath, ticket, request, blobs };
|
|
59
|
+
}
|
|
60
|
+
export function acceptSubmission(prepared, value) {
|
|
61
|
+
const { root, ticketPath, ticket, request, blobs } = prepared;
|
|
62
|
+
const errors = validateReviewResult(request, value);
|
|
63
|
+
if (errors.length)
|
|
64
|
+
throw new Error(errors.join(';'));
|
|
65
|
+
if (!isReviewResult(value))
|
|
66
|
+
throw new Error('结果格式不合法:verdicts 每一项都须是含字符串 item、verdict 为 pass 或 fail 的对象');
|
|
67
|
+
writeAccepted(root, request.key, value);
|
|
68
|
+
if (!request.impact)
|
|
69
|
+
writeCoverage(root, request.key, {
|
|
70
|
+
rubricDigest: request.rubricDigest,
|
|
71
|
+
items: request.items.map((i) => ({ id: i.id, files: i.files })),
|
|
72
|
+
blobs: Object.fromEntries(blobs),
|
|
73
|
+
});
|
|
74
|
+
writeFileSync(ticketPath, JSON.stringify({ ...ticket, used: true }, null, 2));
|
|
75
|
+
return value;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=submission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sumi/plugins-review",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "评审插件",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@sumi/plugin-sdk": "0.
|
|
16
|
+
"@sumi/plugin-sdk": "0.8.0",
|
|
17
17
|
"yaml": "2.9.1",
|
|
18
18
|
"picomatch": "4.0.7",
|
|
19
|
-
"@sumi/plugins-governance": "0.
|
|
19
|
+
"@sumi/plugins-governance": "0.8.0",
|
|
20
|
+
"@sumi/plugins-precedent": "0.8.0"
|
|
20
21
|
},
|
|
21
22
|
"files": [
|
|
22
23
|
"dist",
|
|
@@ -10,4 +10,19 @@ plugins:
|
|
|
10
10
|
context: context-rubrics
|
|
11
11
|
commands:
|
|
12
12
|
- { name: submit, argv: [node, ./dist/commands/submit.js], description: 提交评审结果 }
|
|
13
|
+
- { name: host-model-hook, argv: [node, ./dist/commands/host-model-hook.js], description: 记录代理宿主报告的模型事件 }
|
|
13
14
|
- { name: context-rubrics, argv: [node, ./dist/commands/context.js], description: 列出给定路径上适用的评审条目 }
|
|
15
|
+
hooks:
|
|
16
|
+
agent:
|
|
17
|
+
beforeTool: { command: host-model-hook, tools: all, failure: open }
|
|
18
|
+
sessionStart: host-model-hook
|
|
19
|
+
modelSwitch: host-model-hook
|
|
20
|
+
- id: review/independent-recheck
|
|
21
|
+
version: 0.1.0
|
|
22
|
+
kind: check
|
|
23
|
+
command: [node, ./dist/plugins/independent-recheck.js]
|
|
24
|
+
timeout: 60
|
|
25
|
+
requires: ['@sumi/plugins-governance']
|
|
26
|
+
description: 用宿主报告的不同模型逐项复核原评审失败 finding
|
|
27
|
+
commands:
|
|
28
|
+
- { name: model-recheck, argv: [node, ./dist/commands/model-recheck.js], description: 提交独立模型复核结果 }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fantasticit/sumi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "sumi 命令行",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
"./package.json": "./package.json"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@sumi/create": "0.
|
|
17
|
-
"@sumi/kernel": "0.
|
|
18
|
-
"@sumi/plugin-sdk": "0.
|
|
19
|
-
"@sumi/plugins-core": "0.
|
|
20
|
-
"@sumi/plugins-governance": "0.
|
|
21
|
-
"@sumi/plugins-openspec": "0.
|
|
22
|
-
"@sumi/plugins-precedent": "0.
|
|
23
|
-
"@sumi/plugins-review": "0.
|
|
16
|
+
"@sumi/create": "0.8.0",
|
|
17
|
+
"@sumi/kernel": "0.8.0",
|
|
18
|
+
"@sumi/plugin-sdk": "0.8.0",
|
|
19
|
+
"@sumi/plugins-core": "0.8.0",
|
|
20
|
+
"@sumi/plugins-governance": "0.8.0",
|
|
21
|
+
"@sumi/plugins-openspec": "0.8.0",
|
|
22
|
+
"@sumi/plugins-precedent": "0.8.0",
|
|
23
|
+
"@sumi/plugins-review": "0.8.0",
|
|
24
24
|
"tar": "7.5.22",
|
|
25
25
|
"yaml": "2.9.1"
|
|
26
26
|
},
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"tar",
|
|
43
43
|
"yaml"
|
|
44
44
|
],
|
|
45
|
-
"sumiBuild": "sha256:
|
|
45
|
+
"sumiBuild": "sha256:577d3cfecb19058348796e3c85a9966f79796fead2344e08b2495af7bcff3cb9"
|
|
46
46
|
}
|